You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何查找arrayOne中id与arrayTwo匹配的元素对应的索引值

解法思路
  • 提取arrayTwo中所有的id存入Set结构,降低后续匹配的查找时间复杂度
  • 遍历arrayOne,判断当前元素的revision.id是否存在于提前构建的id集合中,存在则收集当前索引
代码实现
const arrayOne = [{revision: { id: 1 }}, {revision: { id: 2 }}, {revision: { id: 3 }}, {revision: { id: 4 }}];
const arrayTwo = [{someOtherProp: { id: 2 }}, {someOtherProp: { id: 4 }}];

// 提取arrayTwo的所有id构建Set
const targetIdSet = new Set(arrayTwo.map(item => item.someOtherProp.id));
// 遍历arrayOne收集符合条件的索引
const matchedIndexes = arrayOne.reduce((resultArr, currentItem, index) => {
  if (targetIdSet.has(currentItem.revision.id)) {
    resultArr.push(index);
  }
  return resultArr;
}, []);

console.log(matchedIndexes); // 输出结果:[1, 3]
补充说明

若数据量较小,也可以将提取的id存为普通数组,用Array.prototype.includes方法判断匹配,写法更简单;数据量较大时Set的O(1)查找效率会比数组的O(n)查找有明显性能优势。

内容的提问来源于stack exchange,提问作者drifterOcean19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 23:54:07