我有以下数据
var array = [
{'id':'2', 'key':'test1', 'value':'val1'},
{'id':'2','key':'test2','value':'val2'}
]
我有一个对象,它是上述数组
的编辑数据的结果 var object = {'test1':'newval1','test2':'newval2'}
现在我需要将我的'对象'与'数组'进行比较并将id附加到它并准备为
var finalArray = [
{'id':'2','key':'test1','value':'newval1'},
{'id':'2','key':'test2','value':'newval2'}
]
为了实现这一点,我尝试了这个
for(var i = 0;i < array.length;i++) {
for (var key in object) {
if(array[i].key == key) {
this.toUpdateData['key'] = array[i].key;
this.toUpdateData['value'] = object[key];
this.toUpdateData['id'] = array[i].id;
this.finalArray.push(this.toUpdateData);
delete this.data[key];
}
}
但这会导致重复的值。我做错了任何人都可以帮助我。谢谢。 }
因此我希望我的最终数组像
var finalArray = [
{'id':'2','key':'test1','value':'newval1'},
{'id':'2','key':'test2','value':'newval2'}
]
答案 0 :(得分:0)
你可以这样做:
你可以在一个循环中完成它,因为你提到object
无论如何都是从array
获得的。迭代数组并获取数组元素key
使用该键从对象读取并使用该读取值更新数组元素。
var array = [{'id':'2','key':'test1','value':'val1'},{'id':'2','key':'test2','value':'val2'}];
var object = {'test1':'newval1','test2':'newval2'};
for(var i=0;i<array.length;i++) {
var key = array[i].key;
array[i].value = object[key];
}
console.log(array);
&#13;
答案 1 :(得分:0)
您可以迭代数组并检查更新对象中是否存在密钥。然后更新value属性。
var array = [{ id: '2', key: 'test1', value: 'val1' }, { id: '2', key: 'test2', value: 'val2' }],
object = { test1: 'newval1', test2: 'newval2' };
array.forEach(function (a) {
if (a.key in object) {
a.value = object[a.key];
}
});
console.log(array);
&#13;
.as-console-wrapper { max-height: 100% !important; top: 0; }
&#13;