在另一个对象数组中映射对象数组

时间:2017-05-23 10:08:42

标签: javascript arrays mapping

我有两个数组,其中一个我希望用另一个数组作为对象进行映射。例如:

var myArray = [{'id' : 'first', 'name' : 'firstname'}];
var addressArray = [{'city' : 'London', 'street' : 'Oxford'}];

我想将adress数组放在myArray内作为对象,以便我有:

var newArray = [{'id' : 'first', 'name' : 'firstname', 'address' : {'city' : 'London', 'street' : 'Oxford'}}];

我尝试使用forEach方法进行映射:

myArray.forEach(function(o, i){
    o.address = addressArray;
});

但我在输出中不断获得[Object]

[{'id' : 'first', 
  'name' : 'firstname', 
  'address' : [[Object], [Object]] }]

最好的方法是什么?

2 个答案:

答案 0 :(得分:3)

使用index访问元素

myArray.forEach(function(o, i){
    o.address = addressArray[i];
});



var myArray = [{'id' : 'first', 'name' : 'firstname'}];
var addressArray = [{'city' : 'London', 'street' : 'Oxford'}];

myArray.forEach(function(o, i){
    o.address = addressArray[i];
});

console.log(myArray)




答案 1 :(得分:2)

使用map代替,因为它实际上是一个新的数组,你将返回其中含有modyfied项目

var res = myArray.map((item, index) => {
  item.address = addressArray[index];
  return item;
});