我有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"
}
]
我所要做的是,如果一個KEY
從objA
,例如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];
}
});
});
上述作品如預期,但是這是最effieicnt?我問的Reasone是因爲循環throuhg和數組在循環內不感覺最佳做法?也就有了性能的影響
做你想做的'arrayB'陣列將保持不變,並移除'objA'匹配的屬性? – RomanPerekhrest