对象和数组通过map函数合并

时间:2016-01-06 01:48:19

标签: javascript arrays object merge

我有小问题,我想通过地图功能合并对象和数组。 我的代码是:



b




最后我总是从行数组中复制最后一条记录。我不知道我犯了什么错误。 我尝试使用_ each和for循环,但我总是得到相同的结果。

我希望收到此结果:



var headers = [{
    "name": "Date",
    "dtype": "date",
    "dtitle": "Inserta date"
  }, {
    "name": "Patient",
    "dtype": "text",
    "dtitle": "Insert patient name"
  }

];


var rows = [
  [1, 2],
  [3, 4],
  [5, 6]
];

var c = 0;
var item = [];
var items = [];
rows.map(function(v) {

  v.map(function(a) {
    h = headers[c];
    h.value = a;
    item.push(h);
    c++;
  });
  items.push(item);
  c = 0;
});
console.log(items);




1 个答案:

答案 0 :(得分:0)

h = headers[c];将为您提供headers数组中某个对象的引用。你改变它,并将引用放入结果中;你再次改变它,并提出另一个参考。所有Date个对象实际上都是同一个对象(您可以验证headers现在还包含value: 5对象中的Date。与Patient对象相同。

您需要clone对象 - 而不是h = clone(headers[c]);,而不是参考。