我试图摆脱这个,变量Car1 Car2,Car3,Car4被推到一个数组。但我似乎无法弄清楚如何在for循环中增加变量。有什么想法吗?
function get_info() {
n = 0;
for (var option_post in postvalues) {
n++;
var pair = postvalues[option_post];
var string_pair = pair.concat(": ")
var new_postvalues = (string_pair.concat(document.getElementsByName(pair)[0].value));
//Set up cars
var make.concat(n) = document.getElementById("make").value;
var year.concat(n) = document.getElementById("year").value;
var model.concat(n) = document.getElementById("model").value;
var car.concat(n) = "Make: ".concat(make.concat(n)).concat("-Model: ").concat(model.concat(n)).concat("-Year:").concat(year.concat(n)); // combine
}
cars.push(car1, car2, car3, car4);
}

答案 0 :(得分:2)
没有理由在每次循环迭代中创建新的标识符,尤其是因为您希望将值收集到数组中。
function get_info() {
var cars = [], car;
for (var i = 0; i < postvalues.length; i++) {
// ...
// create a car
car = "Make: " + document.getElementById('make' + i).value
+ "-Model: " + document.getElementById('model' + i).value
+ "-Year: " + document.getElementById('year' + i).value;
// append it to the end of your array
cars.push(car);
}
return cars;
}
答案 1 :(得分:0)
我会为每辆车创建一个对象,然后将它们存储在由汽车名称键入的另一个对象中。这些方面的东西:
var cars = {};
for(var i = 0; i < carData.length; i++) {
var carRef = "car" + n;
cars[carRef] = {};
cars[carRef].make = carData[i].make;
cars[carRef].year = carData[i].year;
cars[carRef].model = carData[i].model;
}
它与您的代码不完全匹配,但希望您可以从此示例中获得想法。有了这个,您将检索这样的单个车:
cars["car1"]
或者某辆车的个人财产:
cars["car1"].make