为什么不能在node.js中将此变量重新分配给新值?

时间:2018-12-21 04:00:59

标签: javascript node.js algorithm

我知道选择排序算法不正确。现在还可以,但是为什么 我不能在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}`)

1 个答案:

答案 0 :(得分:0)

您有错别字,请注意iMininumiMinimum

要让解释器警告您未声明的变量,请使用以下命令启动文件

'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