使用每个数组创建一个新对象

时间:2019-11-21 11:20:20

标签: javascript

我想使用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

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