我遇到了一个插入排序的工作代码,如下所示:
function insertionSort(array) {
for (let i = 1; i < array.length; i++){
let curr = array[i];
for (var j = i-1; j >= 0 && array[j] > curr; j--){
array[j+1] = array[j];
}
array[j+1] = curr;
}
return array;
}
我的问题是:行中的 j 不应该:
array[j+1] = curr;
超出范围? 我在这里缺少什么?
最佳答案
使用 var
声明 javascript 变量会使变量的范围成为它在其中声明的整个函数的范围。
反对 let
,它将范围限制在它定义的 block 内。
所以,不。它不会超出范围。
关于javascript - 插入排序代码中变量的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53296455/