我知道选择排序算法不正确。现在没问题,但为什么 我不能在 j for 循环中将 iMinimum 分配给 j 吗? 我正在使用 Node 版本 10+。 console.log“iMinimum is now …”显示了上面早些时候分配的变量值,所以我很困惑。
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}`)
最佳答案
你有一些拼写错误,请注意 iMininum
与 iMinimum
。
要让解释器警告您未声明的变量,请以
开始您的文件'use strict';
这将启用 strict mode ,迫使您声明所有变量。
为了进一步分析,运行 linter,例如 eslint
.这将自动检测您的问题:
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
关于javascript - 为什么我不能将此变量重新分配给 node.js 中的新值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53878978/