// Block 1
var ourArray = [];
var i = 0;
while(i < 5) {
ourArray.push(i);
i++;
console.log(ourArray); // [0, 1, 2, 3, 4]
}
// Block 2
var myArray = [];
var i = 0;
while(i < 5) {
i++
myArray.push(i);
console.log(myArray); // [1, 2, 3, 4, 5]
}
为什么增量表达式i++
的位置会影响数组中的元素?
在块2的顶部具有i++
似乎意味着该数组不再为0索引
答案 0 :(得分:1)
该数组曾经并且仍然是零索引的。
更改的只是您推入其中的值,而不是它们的索引。
在第一种情况下:
您先按i
,然后再按1
递增,即首先按0
,然后按1
,依此类推,直到4
。>
在第二种情况下:
您先递增i
,然后将其推入数组,即首先将i
递增至1
,然后推直至i
变成5
。>
答案 1 :(得分:0)
var ourArray = [];
var i = 0;
while(i < 5) {
console.log(ourArray.push(i));
console.log(ourArray); // [0, 1, 2, 3, 4]
i++;
}
在上面的示例中,i的值首先被打印,然后递增,因此从0开始,以4结尾。
// Block 2
var myArray = [];
var i = 0;
while(i < 5) {
i++
console.log(myArray.push(i));
console.log(myArray); // [1, 2, 3, 4, 5]
}
在此示例中,i的值首先递增,然后被打印,因此它从1开始并在5结束。
答案 2 :(得分:0)
数组的索引保持不变,只是存储的值已被修改,这是因为在存储到myArray中之前要对变量i进行递增。在块1中,将i的值存储在ourArray数组中,然后递增。