var myArray = []; //Create an empty array
//Fills empty array with values
for (i = 0; i < myArray.length - 1; i++) {
myArray[i] = i * i; //Each index is equal to the square of the index number 0=0, 1=1, 2=4, etc.
}
console.log(myArray.length);
console.log(myArray[0]);
console.log(myArray.length);
在控制台中返回0
console.log(myArray[0]);
在控制台中返回未定义
答案 0 :(得分:1)
myArray.length
返回数组myArray
中的元素数。
当数组到达循环时,其中没有任何元素([]
)。因此,当您执行myArray.length
时,您会得到一个数字0
。
因此,您的for循环将运行零次,因为0 < 0
永远不会为真(并且要运行,您的中间条件需要评估为true),这意味着当您达到console.log
时,不会有任何结果在您的数组中设置,因此myArray[0]
将是未定义的。
因此,要生成值,您需要在for循环中使用大于零的数字。在下面的示例中,我创建了一个包含10
元素的数组:
var myArray = []; //Create an empty array
//Fills empty array with values
for (i = 0; i < 10; i++) { // <--- Change to i < 10 here to run 10 times (for i ranging within [0, 10) (0 <= i < 10)
myArray[i] = i * i; //Each index is equal to the square of the index number 0=0, 1=1, 2=4, etc.
}
console.log(myArray.length); // 10
console.log(myArray[0]); // 0
console.log(myArray[1]); // 1
console.log(myArray[2]); // 4
答案 1 :(得分:0)
open(my $in_fh, '<', $in_qfn)
or die("Can't open \"$in_qfn\": $!\n");
open(my $err_fh, '>>', $err_qfn)
or die("Can't append to \"$err_qfn\": $!\n");
while (my $qfn = <$in_fh>) {
chomp($qfn);
print($err_fh "$qfn\n");
}
在开始循环时为零。因此,它甚至都没有进入循环,因此该数组将保留在初始化时的状态。
答案 2 :(得分:0)
您可以简单地使用Array.from
并以mapFn
作为第二个参数来生成数字:
const generate = n => Array.from({length: n}, (x,i) => i*i)
console.log(generate(5))
console.log(generate(10))