如何比较两个数组,如果找到相同的键,然后从第二个数组中获取值并将其分配给第一个数组。结果是使用第一个数组。例如,我有下面的数组:
var compareit = {
firstArray : {
'color': 'blue',
'width': 400,
'height': 150,
},
secondArray: {
'color': 'red',
'height': 500,
},
};
目标是,我希望结果为:{'color': 'red', 'width': '400', 'height': '500'};
我真的很感激任何帮助...谢谢你:)。
答案 0 :(得分:1)
您只需使用Object.assign()
将一个或多个源对象的值复制到目标对象。
var compareit = {
firstArray: {
'color': 'blue',
'width': 400,
'height': 150,
},
secondArray: {
'color': 'red',
'height': 500,
},
};
Object.assign(compareit.firstArray, compareit.secondArray);
console.log(compareit.firstArray)
如果您不想操纵现有对象compareit.firstArray
var compareit = {
firstArray: {
'color': 'blue',
'width': 400,
'height': 150,
},
secondArray: {
'color': 'red',
'height': 500,
},
};
var obj = {};
Object.assign(obj, compareit.firstArray, compareit.secondArray);
console.log(obj, compareit)
答案 1 :(得分:0)
您可以遍历第一个数组中的属性,并检查第二个数组中是否存在相同的属性。
var compareit = {
firstArray: {
'color': 'blue',
'width': 400,
'height': 150,
},
secondArray: {
'color': 'red',
'height': 500,
},
};
var result = {};
for (var key in compareit.firstArray) {
if (key in compareit.secondArray) {
result[key] = compareit.secondArray[key];
} else {
result[key] = compareit.firstArray[key];
}
}
console.log(result);

答案 2 :(得分:0)
var compareit = {
firstArray : {
'color': 'blue',
'width': 400,
'height': 150,
},
secondArray: {
'color': 'red',
'height': 500,
},
};
var result,
compareObjects=function(comp){
return Object.assign(comp.firstArray, comp.secondArray);
};
result=compareObjects(compareit);
console.log(result);