javascript - 用于重复值的 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。
解决方案
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)
推荐阅读
- python - 无法在树莓派上安装 PyQt5
- javascript - 如何返回数组的最低索引?
- javascript - 如何获取数据 id_user 使用 ajax post onclick 并传递 id_user
- service-worker - 在谷歌浏览器中以“隐身模式”浏览网站时,如何解决服务人员中的“未捕获(承诺)DOMException:配额超出”错误
- c++ - Poco::Zip 集扩展列表
- sql - 需要查询更正
- jpa - QueryDSL isNotNull() 的 SQL 等价物
- c++ - 使用 C++11 时列表中的编译错误
- excel - 如果单元格包含特定文本,则将单元格从一张纸复制到另一张纸
- jenkins - 詹金斯不允许保存配置