CKA*_*CKA 0 javascript arrays foreach
let masterList=[{id:1,name:'Abc'},{id:2,name:'Def'},{id:3,name:'Ghi'}];
let selectedList=[2,3];
Run Code Online (Sandbox Code Playgroud)
理想的结果是
//desiredList=[{id:2,name:'Def'},{id:3,name:'Ghi'}]
Run Code Online (Sandbox Code Playgroud)
目前我正在做的是
let parsedArray = [];
masterList.forEach(mItem => {
selectedList.forEach(sItem => {
if (mItem.id === sItem) {
parsedArray.push(mItem);
}
});
});
desiredList=parsedArray
Run Code Online (Sandbox Code Playgroud)
在大型数组上进行迭代时,我发现此方法效率不高,是否可以使用该方法实现相同的逻辑,内置的javascript操作符?
您可以将mapwith id作为键,将对象作为值,然后通过map映射映射中的所需值selectedList。
此方法使用的顺序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);Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
101 次 |
| 最近记录: |