我有一些数组收集的对象.出于各种原因,相同的对象也附加到某些DOM元素.我不时需要更新其中一个对象.最简单的方法是在数组中找到具有相同id属性的对象,通过AJAX获取新值,然后替换它.但这当然会创建一个新对象,并且附加到DOM元素的对象不再相同.这意味着,如果我要比较它们,它们将不再是同一个物体.
如何最简单地用新对象中的值替换正确的对象而不替换实际对象?(这样参考保持不变)
我不想要的例子
var values = [{id:1, name:'Bob'}, {id:2, name:'Alice'}, {id:3, name:'Charlie'}];
var bar = values[2];
console.info(bar === values[0]); // True
var newValue = {id:1, name:'Dave'};
// Somehow find the index of the object with id==3
values[2] = newValue;
console.info(bar === values[2]); // False, should still be true
Run Code Online (Sandbox Code Playgroud)
我能想到的唯一方法是使用foreach或其他东西循环遍历对象,但希望javascript或jQuery内置一些内容,或者允许更高效或更简洁的代码.
您可以迭代新值的值并将其设置为旧值:
for (i in newValue) {
oldValue[i] = newValue[i];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6009 次 |
最近记录: |