gpt4 book ai didi

javascript - 在javascript中同时循环两个数组

转载 作者:行者123 更新时间:2023-11-28 11:05:06 24 4
gpt4 key购买 nike

let masterList=[{id:1,name:'Abc'},{id:2,name:'Def'},{id:3,name:'Ghi'}];
let selectedList=[2,3];

想要的结果是

//desiredList=[{id:2,name:'Def'},{id:3,name:'Ghi'}]

目前我正在做的是

     let parsedArray = [];
masterList.forEach(mItem => {
selectedList.forEach(sItem => {
if (mItem.id === sItem) {
parsedArray.push(mItem);
}
});
});
desiredList=parsedArray

我发现这种方法在迭代大型数组时效率不高,是否有任何逻辑,任何内置的 JavaScript 运算符可以使用它来实现相同的目的?

最佳答案

您可以采用一个以 id 作为键、以对象作为值的 map,并通过映射 selectedList 从 map 中映射所需的值。

此方法使用 selectedList 中的顺序。

var masterList = [{ id: 1, name: 'Abc' }, { id: 2, name: 'Def' }, { id: 3, name: 'Ghi' }],
selectedList = [2, 3],
result = selectedList.map(Map.prototype.get, new Map(masterList.map(o => [o.id, o])));

console.log(result);

关于javascript - 在javascript中同时循环两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56932813/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com