我有兩個JavaScript數組orig
(對象的原始數組)和update
(更新的對象的orig數組),它們具有相同的長度幷包含對象,並且我想輸出每對對象之間的差異。如何找到兩個JavaScript對象數組之間的差異?
例子:
var orig = [{enabled:"true", name:"Obj1", id:3},{enabled:"true", name:"Obj2", id:4}];
var update = [{enabled:"true", name:"Obj1", id:3}, {enabled:"true", name:"Obj2-updated", id:4}];
輸出應該是:name:"Obj2-updated"
我實現的東西,但它需要優化......
for(var prop=0; prop<orig.length; prop++) {
for(prop=0; prop<update.length; prop++) {
if(orig[prop].enabled != update.enabled) { console.log(update.enabled) }
if(orig[prop].name != update[prop].name) { console.log(update[prop].name) }
if(orig[prop].id != update[prop].id) { console.log(update[prop].id) }
}
}
是輸出一個字符串還是一個對象?或者包含對象或字符串的數組,或者? –
雖然我不知道你的用例,但我只有一個已更改值的列表,而不知道哪個鍵和哪個對象的變化值存在,你確定你不需要更多的細節?我並不是想貶低你的問題,但是我試圖預測你的下一個問題可能是什麼,如果你錯了只需要改變的價值。 –
我只是需要輸出創建一個字符串文本,說:「嘿,你改變Obj2 Obj2更新」。但我只需要知道哪個屬性被修改了。 – Valip