我有两个对象列表:
let list1 = [{id: '1', status: 'use', comment: 'xxxx'}, {id: '2', status: 'ready', comment: 'yyyy'}, {id: '3', status: 'ready', comment: 'zzzz'}];
let list2 = [{uid: '1', elec: 60}, {uid: '2', elec: 60}, {uid: '10', elec: 60}, {uid: '3', elec: 40}];
我想要的是检索 list2 的一个对象,该对象具有 elec > 50 且 uid 与 list1 的一项 id 相同,前提是 list1 的该项具有状态==“就绪”。另外,我想向此项目添加来自 list1 对象的参数“comment”。
在此示例中,我的结果值为:{uid: '2', elect: 60, comment: 'yyyy'}。
我这样做了:
let list1Filtered = list1.filter(itemList1 => itemList1.status == 'ready');
let list2Filtered = list2.filter(itemList2 => itemList2.elec > 50);
var result;
for ( let itemList1Filtered of list1Filtered ) {
for ( let itemList2Filtered of list2Filtered ) {
if (!result && itemList1Filtered.id == itemList2Filtered.uid) {
result = itemList2Filtered;
result.comment = itemList1Filtered.comment;
}
}
}
return result;
我想知道是否有更优雅和/或更复杂的方法可以在 Javascript 中执行此操作。
莫回无
慕丝7291255
紫衣仙女
慕妹3242003
相关分类