我知道选择排序算法不正确。现在还可以,但是为什么 我不能在j for循环内将iMinimum分配给j吗? 我正在使用节点版本10+。 console.log“ iMinimum现在……”显示了上面前面分配的变量的值,所以我很困惑。
console.log('SELECTION SORT')
let data = [5,1,3,9,4]
for(let i = 0; i < data.length; i++){
iMinimum = i
for(let j = iMinimum+1; j < data.length; j++){
console.log(`j is now ${j}`)
if(data[j] < data[iMinimum]){
iMininum = j
console.log(`iMinimum is now ${iMinimum} and j is ${j}`)
}
}
data[i] = data[iMinimum]
}
console.log(`Sorted Array: ${data}`)
答案 0 :(得分:0)
您有错别字,请注意iMininum
与iMinimum
。
要让解释器警告您未声明的变量,请使用以下命令启动文件
'use strict';
这将启用strict mode,迫使您声明所有变量。
要进行进一步分析,请运行诸如eslint
之类的linter。这将自动检测您的问题:
7:5 error 'iMinimum' is not defined no-undef
8:17 error 'iMinimum' is not defined no-undef
10:28 error 'iMinimum' is not defined no-undef
11:14 error 'iMininum' is not defined no-undef
12:45 error 'iMinimum' is not defined no-undef
15:20 error 'iMinimum' is not defined no-undef