我有小问题,我想通过地图功能合并对象和数组。 我的代码是:
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);

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