最大和最小的数字Javascript错误

时间:2018-05-28 14:13:49

标签: javascript node.js

  1. 挑战:
    • 您将获得一串以空格分隔的数字,并且必须返回最高和最低数字。
  2. 问题:
    • 预期:'542 -214',取而代之的是:'6 -214'
    • 我无法理解为什么系统认为6高于542.该程序在删除6时工作正常。
  3. 代码:

    function highAndLow(numbers){
       numbers = numbers.split(" ");
       var biggest = numbers[0];
       for (i = 0; i < numbers.length; i++) {
          if (numbers[i] > biggest) {
             biggest = numbers[i];
          }
       }
       var smallest = numbers[0];
       for (i = 0; i < numbers.length; i++) {
          if (numbers[i] < smallest) {
             smallest = numbers[i];
          }
       }
       return biggest + " " + smallest;
       }
    
    console.log(highAndLow("4 5 29 54 4 0 -214 542 -64 1 -3 6 -6"));
    

    JSBin Link

1 个答案:

答案 0 :(得分:1)

这是因为它将数字作为字符串而不是数字进行比较。在比较它们之前,您需要convert them to numbers使用Number()函数将它们转换为数字,例如:

biggest = Number(numbers[0]);