给出不同数组值的增量表达式的位置

时间:2019-07-03 09:39:24

标签: javascript

// 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索引

3 个答案:

答案 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数组中,然后递增。