首页 > 解决方案 > 查找字符串中的最高和最低数字?

问题描述

你得到一串空格分隔的数字,并且必须返回最高和最低的数字。我试图在不使用Math.max()or的情况下解决这个问题Math.min()

到目前为止,这是我的代码:


function highAndLow(nums){  
  
  let arr = nums.split(' ');
  let maxNum = arr[0];
  let minNum = arr[0];
  
  for(let i=0; i < arr.length; i++) {
    if(arr[i] > maxNum) {
        maxNum = arr[i];
        console.log('Setting maxNum to '  + maxNum);
      }
    } 

    for(let i=0; i < arr.length; i++) {
      if(arr[i] < minNum) {
          minNum = arr[i];
          console.log('Setting minNum to '  + minNum);
       }  
    }
    const result = maxNum + " " + minNum;
    return result;
}

预期:542, -214,而不是:6, -214

为什么我得到 6 而不是 542?

标签: javascriptarraysstringalgorithm

解决方案


解决方案比预期的要容易:

 function highAndLow(nums){
   var array = nums.split(' ');

  var num = array.map(item => parseFloat(item));
  var sortedArray = num.sort((a, b) =>  b -a );
  console.log(sortedArray);
  return sortedArray[0] + ', ' + sortedArray.reverse()[0]
 }

 var result = highAndLow('2 3 9 3 50 32');
 console.log(result);

在此示例中,您既不使用 Math.max 也不使用 Math.min


推荐阅读