【发布时间】:2020-11-25 16:45:55
【问题描述】:
我创建了一个包含六个对象的数组,每个对象具有三个属性:姓名、年龄和职业。我已经给了他们初始值。现在我有另外三个数组,每个数组有六个值(六个不同的名字、六个不同的年龄和六个不同的职业)。我试图通过遍历其他三个具有不同名称年龄和职业值的数组来更改初始数组中对象的属性值。我尝试在单个 for 循环、单个 while 循环和使用三个不同的循环中执行此操作。但它不工作。 console.table() 方法正在打印所有表行中循环的最后一次迭代的值(名称:supermentalist,年龄:40 和职业:theTwo)。
let arr = new Array(6).fill({});
for (ele of arr) {
ele.name = "withoutCape";
ele.age = 40;
ele.profession = "programmer";
}
console.table(arr);
const names = [
"superhero",
"superzero",
"supermum",
"superdumb",
"superscientist",
"supermentalist",
];
const ages = [35, 36, 37, 38, 39, 40];
const professions = [
"programmer",
"scientist",
"cryptographer",
"etymologist",
"theOne",
"theTwo",
];
for (let i = 0; i < professions.length; i++) {
arr[i]["name"] = names[i];
}
for (let i = 0; i < professions.length; i++) {
arr[i]["age"] = ages[i];
}
for (let i = 0; i < professions.length; i++) {
arr[i].profession = professions[i];
}
console.table(arr);
【问题讨论】:
-
看到这个问题:How do I use array.fill for creating an array of objects?。您有一个对象数组,它们都引用同一个对象,因此更改一个对象会全部更改。
标签: javascript loops console