为什么这会产生一个无限循环
Why does this create an infinite loop?
这是我在FreeCodeCamp.com上的一个算法问题:
返回值(第二个参数)在排序后应该插入数组(第一个参数)的最低索引。返回值应该是一个数字。
如果我没有在我的"If语句"中放一个断点,我就会得到一个"潜在的无限循环"警告。为什么呢?我认为如果条件为假,for循环将继续进行下一次迭代。
//
我的解决方案function getIndexToIns(arr, num) {
arr.sort(function(a, b) {
return a - b;
});
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) {
//This is the code in question
arr.splice(i, 0, num);
break;
}
else {
arr.push(num);
}
}
return arr.indexOf(num);
}
一旦你把数字插入到数组中,条件就永远不会为假,因为arr[i]
总是第一个让你进入if块的元素——它只是上移了一个索引。
var arr = [500];
var num = 100;
for (var i = 0; i < arr.length; i++) {
if (arr[i] > num) { // arr[0] = 500, so we enter the block
arr.splice(i, 0, num); // now the array is [100, 500], and the
} // for loop is going to move onto arr[1]
// which is still 500... so we'll enter the
// if block again and insert another 100, etc etc.
相关文章:
- 为什么我使用javascript获得了一个无限的for循环
- javascript停止一个无限循环
- setTimeout 会创建一个无限循环
- 为什么我有一个无限循环
- 为什么(;;){…}是一个无限循环
- 为什么“;window=window.parent"创建一个无限循环
- 把我的折线放在一个无限循环中
- 为什么这个树的布局给了我一个无限的循环
- JavaScript:为什么这会导致一个无限循环
- 两个同步事件创建了一个无限循环
- 为什么我的javascript代码会进入一个无限循环
- 为什么这会导致一个无限循环
- 在一个无限循环风格的展示中预先加载相邻的条目
- addEventListener创建了一个无限循环
- 在Jquery中创建一个无限循环
- 为什么这段代码创建了一个无限循环?
- Select2 trigger("change")创建一个无限循环
- 为什么这会产生一个无限循环
- 是否有任何解决方案来结束一个无限循环函数
- 为什么我的角脚本运行一个无限循环