比较Two Array,如果找到相同的键,则从2nd Array获取值

时间:2017-02-13 10:05:30

标签: javascript jquery arrays compare

如何比较两个数组,如果找到相同的键,然后从第二个数组中获取值并将其分配给第一个数组。结果是使用第一个数组。例如,我有下面的数组:

    var compareit = {
            firstArray : {
                'color': 'blue',
                'width': 400,
                'height': 150,
            },
            secondArray: {
                'color': 'red',
                'height': 500,
            },
    };

目标是,我希望结果为:{'color': 'red', 'width': '400', 'height': '500'};

我真的很感激任何帮助...谢谢你:)。

3 个答案:

答案 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);