【发布时间】:2014-05-29 00:00:02
【问题描述】:
问题是- 运算符不起作用(在第 8 行)。请参阅下面的代码:
array = [0,0,0,0,3,0,0,0,0],
n = 0;
for(var i = 0; i < array.length; i++){
if(n < 9){ //the "n" variable there's only for don't crash the browser with a infinite loop
if(array[i] == 3){
array[i] = 0;
array[i - 1] = 3; //I believe that here is the problem
}
}
n++;
}
console.log(array);
所以... 我想将“3”值移动到数组的开头。但它只有在我使用 + 运算符(在第 8 行)时才有效。因此,如果我使用 + 之一,“3”值将移至数组的末尾。
有人知道为什么- 运算符在这种情况下不起作用而+ 起作用吗?
【问题讨论】:
-
这类问题可以用纸笔轻松调试。跟踪
i的当前值、数组的内容等,一步步走一遍代码。 -
问题是对于 i = 0 , i-1 不是数组的有效索引。
-
请在您发布问题之前测试您的代码并挑战您自己的假设。您要求其他人花费宝贵的时间来帮助您,因此请尽一切努力在您提出要求之前了解正在发生的事情。
标签: javascript algorithm