首页 > 解决方案 > 用于重复值的 Javascript findIndex

问题描述

JavaScriptfindIndex返回第一个找到的索引以防重复值

const arr = [{a: 10, b: 20, c: 30},{a: 15, b: 25, c: 32},{a: 10, b: 23, c: 350}]
const index = arr.findIndex(m => m.a === 10)
console.log(index);

上面的代码只会返回 0 索引。

我应该怎么做才能获得索引 2。

标签: javascriptarraysobjectecmascript-6

解决方案


你可以filter这样的keys数组:

const arr = [{a: 10, b: 20, c: 30},{a: 15, b: 25, c: 32},{a: 10, b: 23, c: 350}]
const indices = [...arr.keys()].filter(i => arr[i].a === 10)
console.log(indices)

或者,只需使用for循环

const arr = [{a: 10, b: 20, c: 30},{a: 15, b: 25, c: 32},{a: 10, b: 23, c: 350}]
const output = [];

for (let i = 0; i < arr.length; i++) {
  if (arr[i].a === 10)
    output.push(i)
}

console.log(output)


推荐阅读