【发布时间】:2016-06-09 06:59:00
【问题描述】:
我有 2 个对象/数组:
var objA = {
Red Chair : "DC10291",
USBDongle : "USKI82322",
}
var arrayB = [
{
field: "Yellow Banana",
id: "Yellow Banana"
},
{
field: "Red Chair",
id: "Red Chair"
},
{
field: "Garden",
id: "Garden"
}
]
我想做的是,如果来自objA 的KEY,例如Red Chair,存在于arrayB 中,然后将其从arrayB 中删除。
我已经这样做了:
var arrayClone = _.cloneDeep(arrayB);
var removeThese = [];
Object.keys(arrayClone).forEach(function(p) {
removeThese.push(p)
});
removeThese.forEach(function(remove) {
arrayB.forEach(function(item) {
if(item.id === remove) {
delete objA[remove];
}
});
});
上述工作按预期工作,但是这是最有效的吗?我问的原因是因为在数组循环中循环遍历和数组感觉不是最佳实践?并且会对性能产生影响
【问题讨论】:
-
您希望
arrayB数组保持不变并从objA中删除匹配的属性吗?
标签: javascript arrays javascript-objects lodash