2017-06-01 85 views
0

我有像下面如何与对象比较阵列

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]; 
      } 
     } 

但是,这导致了重复values.I做错了任何人都可以oplease帮助me.Thanks。 }

所以我想我喜欢

var finalArray = [ 
    {'id':'2','key':'test1','value':'newval1'}, 
    {'id':'2','key':'test2','value':'newval2'} 
] 
+0

隐蔽目的是它的阵列形式和写入,可以比较两个阵列的功能。 – Halcyon

+1

您提出的问题与角度或任何其他框架无关。请仅使用相关标签 – echonax

+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);

0

你可以遍历数组,并检查关键的更新对象存在。然后更新值属性。

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);
.as-console-wrapper { max-height: 100% !important; top: 0; }