这是一个很小的问题,对于我的一生,我不知道这是什么。我的大脑使自己无法思考。我需要其他人看一下这段代码。

代码的输出应为:[1,0,0,0]

更新:

该函数应能够读取数字数组,并且如果在数组中找到任何零,则应将其移至数组末尾。

代码的输出一直为:[0,1,0,0]

var arrNum = [0,0,0,1];

function test() {
   for(var i=0; i<arrNum.length; i++){

 if(arrNum[i] == 0){

    arrNum.splice(i,1)
    arrNum.splice(arrNum.length, 1, 0)

    }
 }
 return alert(arrNum)
}


Here是一个工作的小伙子。

对此表示歉意,我知道问题很小,但是我的大脑现在停止工作了,我需要换新的眼睛。

最佳答案

用编写的方式,您需要以相反的顺序循环。当您删除索引时,最终将跳过索引。反向循环可避免您跳过它们。

for(var i=arrNum.length-1; i>=0; i--){

08-27 01:38