我有两个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