我正在尝试使用 for 循环动态创建对象数组。此对象的键值对的值来自不同的数组。那么如何使用 for 循环动态创建对象数组呢?我尝试了以下代码块,但它不起作用。
var anObj = [];
var charectors = ['Iron Man', 'Hulk', 'Thor']
var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
for(let i=0; i<charectors.length; i++){
anObj[i] = {
charector : charectors[i],
actor : actors[i]
}
}
上面的代码抛出一个错误,因为我期望对象数组为
[
{
"charector":"Iron Man",
"actor":"Robert Downey, Jr"
},
{
"charector":"Hulk",
"actor":"Mark Ruffalo"
},
{
"charector":"Thor",
"actor":"Chris Hemsworth"
}
]
答案 0 :(得分:3)
您也可以使用 map
var anObj = [];
var charectors = ["Iron Man", "Hulk", "Thor"];
var actors = ["Robert Downey, Jr", "Mark Ruffalo", "Chris Hemsworth"];
const result = actors.map((actor, i) => ({ charector: charectors[i], actor: actors[i] }));
console.log(result)
带有 for...of 循环
var anObj = [];
var charectors = ["Iron Man", "Hulk", "Thor"];
var actors = ["Robert Downey, Jr", "Mark Ruffalo", "Chris Hemsworth"];
const result = [];
for (let [i, actor] of actors.entries()) {
result.push({
charector: charectors[i],
actor: actors[i],
});
}
console.log(result);
答案 1 :(得分:2)
在 for 循环中使用 :
而不是 =
。
基本对象属性赋值
var anObj = [];
var charectors = ['Iron Man', 'Hulk', 'Thor']
var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
for(let i=0; i<charectors.length; i++){
anObj[i] = {
charector : charectors[i],
actor : actors[i]
}
}
答案 2 :(得分:0)
使用
将值推入数组
anObj.push({
charector: charectors[i],
actor: actor[i]
})
答案 3 :(得分:0)
您有两个错误:
大括号内的赋值分隔符是冒号,而不是冒号 等号;
第二个源数组的名称是 actor,而不是 actor。
var anObj = [];
var charectors = ['Iron Man', 'Hulk', 'Thor']
var actors = ['Robert Downey, Jr', 'Mark Ruffalo', 'Chris Hemsworth']
for(let i=0; i<charectors.length; i++){
anObj[i] = {
charector : charectors[i],
actor : actors[i]
}
}
console.log(anObj);