我想使用forEach方法从数组中制作3个新闻对象,并将其推入新数组中。但是新数组中的结果始终是旧数组中的最后一个元素。对不起我的愚蠢问题。非常感谢
let A =['0','1','2'];
let C = {};
let D = [];
A.forEach( a => {
C['name'] = a;
D.push(C)
print(D[a]['name']);
});
print(D[0]['name']);
print(D[1]['name']);
print(D[2]['name']);
0
1
2
2
2
2
答案 0 :(得分:4)
对象是引用类型,因此它们通过引用传递。但是,您可以创建新对象并将其推入数组:
let A = ['0', '1', '2'];
let C = {};
let D = [];
A.forEach(name => {
D.push({name});
});
console.log(D);
答案 1 :(得分:0)
为了保持您的推理能力,您可以使用:
let A = ['0', '1', '2'];
let C = {};
let D = [];
A.forEach(a => {
C['name'] = a;
D=Object.assign({}, C)
});
console.log(D);