我创建了一些想要推入数组的对象。我想知道,如果我通过FOR循环来推送,是否会减少代码的重用,而不是手动推送它们。然而,它并不起作用。
// Using a FOR to push objects into an array.
var object_list = [];
var car1 = {type:"Fiat", model:"500", color:"white"};
var car2 = {type:"Ford", model:"Focus", color:"red"};
var car3 = {type:"Nissan", model:"Micra", color:"Blue"};
//object_list.push(car1); ..the manual way..
//object_list.push(car2);
//object_list.push(car3);
for (z = 1; z < 4; z++) { // .. a better way.. or so I thought!..
object_list.push('car'+z);
}
alert(object_list[2].type) //undefined
谁能告诉我为什么FOR循环不起作用?或者有没有别的办法。
发布于 2020-12-01 19:30:31
您可以将变量包装在window['car1']
中,它将创建动态变量名。这不是最优的解决方案,但它会实现你想要的。
最好的解决方案是创建一个大型数组。
// Using a FOR to push objects into an array.
var object_list = [];
var car1 = {type:"Fiat", model:"500", color:"white"};
var car2 = {type:"Ford", model:"Focus", color:"red"};
var car3 = {type:"Nissan", model:"Micra", color:"Blue"};
//object_list.push(car1); ..the manual way..
//object_list.push(car2);
//object_list.push(car3);
for (z = 1; z < 4; z++) { // .. a better way.. or so I thought!..
object_list.push(window['car'+z]);
}
console.log(object_list[2].type) //undefined
https://stackoverflow.com/questions/65097123
复制相似问题