输出中打印额外行(未定义)的JavaScript代码

输出中打印额外行(未定义)的JavaScript代码,javascript,constructor,Javascript,Constructor,需要此代码的帮助。我做错了什么 问题: 创建10辆车,每辆车都有颜色和编号。汽车应该按0到9的顺序编号。从0到4的车辆应为“绿色”,从5到9的车辆应为“蓝色”。将汽车排列成一个称为车库的阵列 准则: 为了避免在创建10个单独的Car时出现重复代码,首先创建一个构造函数Car,该函数接受color和number参数,并将它们设置为this.color和this.number。然后创建10辆汽车并将它们放置在车库阵列中 // create a car constructor function var

需要此代码的帮助。我做错了什么

问题: 创建10辆车,每辆车都有颜色和编号。汽车应该按0到9的顺序编号。从0到4的车辆应为“绿色”,从5到9的车辆应为“蓝色”。将汽车排列成一个称为车库的阵列

准则: 为了避免在创建10个单独的Car时出现重复代码,首先创建一个构造函数Car,该函数接受color和number参数,并将它们设置为this.color和this.number。然后创建10辆汽车并将它们放置在车库阵列中

// create a car constructor function
var Car = function(color, number) {
    this.color = color;
    this.number = number;
}
// create a carGarage array
var carGarage = [10];
// create a loop that creates cars and places them in carGarage
for (var i = 0; i <= 9; i++) {
    var color, number;
    i <= 4? color = 'green': color = 'blue';
    number = i;
    var newCar = new Car(color, number);
    carGarage.push(newCar);

}
// test code
for (var i = 0; i < carGarage.length; i++) {
   car = carGarage[i];
   console.log(car.color + " car #" + car.number);
}
实际产出

green car #0
green car #1
green car #2
green car #3
green car #4
blue car #5
blue car #6
blue car #7
blue car #8
blue car #9
undefined car #undefined
green car #0
green car #1
green car #2
green car #3
green car #4
blue car #5
blue car #6
blue car #7
blue car #8
blue car #9
这一行是关键:

var carGarage = [10];
您已经用一个元素初始化了数组-
10
,而不是长度为10的数组。您必须将其更改为:

var carGarage = [];
所以您初始化空数组


你有两次未定义的
,因为
10.颜色和
10.数字都没有定义。

谢谢你!我知道我可以先声明一个空数组,这样就行了,但是我想既然我已经知道我只有10个确定的元素,为什么不试试呢?但是JS很奇怪,它就是不起作用,谢谢,我接受它。当然,在其他语言中,方括号用于指定数组长度。(C#)