首页 > 解决方案 > 查找最后匹配出现的索引

问题描述

我有要按variables字母顺序添加的数组和下一个变量。它是 AZ,然后是 AA、AB、AC 等。所以当下一个变量是E我想将它添加到长度 = 1 的字母的末尾时,如果下一个变量是AC我会在字母的末尾添加它长度 = 2 等。我尝试使用 findIndex 执行此操作,但它返回第一次出现,而不是最后一次出现并lastIndexOf接受值,而在我的情况下,它应该是给定长度的最后一个元素。

let variables = ['A', 'B', 'C', 'D', 'AA', 'AB'];
const nextVariable = 'E';
const idx = variables.findIndex(x => x.length === nextVariable.length);
variables.splice(idx, 0, nextVariable);
console.log(variables);

// should be ['A', 'B', 'C', 'D', 'E', 'AA', 'AB']

标签: javascripttypescript

解决方案


let variables = ['A', 'B', 'C', 'D', 'AA', 'AB'];
const nextVariable = 'E';
variables[variables.length] = nextVariable
variables = variables.sort((x,y) => x.length<y.length ? -1 : x.length==y.length ? x.localeCompare(y) : 1)
console.log(variables);


推荐阅读