猿问

为每个新对象创建一个数组

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


jeck猫
浏览 124回答 2
2回答

慕哥9229398

对象是引用类型,因此它们是通过引用传递的。但是,您可以创建新对象并将其推送到数组中:let A = ['0', '1', '2'];let C = {};let D = [];A.forEach(name => {  D.push({name});});console.log(D);

扬帆大鱼

为了保持推理,您可以使用:let A = ['0', '1', '2'];let C = {};let D = [];A.forEach(a => {  C['name'] = a;  D=Object.assign({}, C)});console.log(D);
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答