重复值的 Javascript findIndex

标签 javascript arrays object ecmascript-6

JavaScript findIndex 在重复值的情况下返回第一个找到的索引

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。

最佳答案

你可以 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)

关于重复值的 Javascript findIndex,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56221528/

相关文章:

python - 如何使用多处理将函数应用于二维 numpy 数组

php - 如何返回整个 mysql 结果集,并且一次一个将每一行设置为一个数组?

ios - 如何在一段时间后停止 iOS 中的后台服务

javascript - 对 Spring Boot 端点的 Ajax 请求无法读取 HTTP MSG

javascript - Bootstrap 4 - 模态视频重新加载

javascript - 单击 View 时 Appcelerator 范围问题

javascript - 两个看似相等的字符串在 javascript 中不相等

PHP:一列表到一维数组

java - 读取文件以将其数据存储在数组中时出错

javascript - 创建一个类实例作为 html 元素