数组中最小和最大数字之间的差异

时间:2019-11-09 11:28:12

标签: javascript arrays

我坚持下面的作业。

编码此函数以获取一个数组并返回最小和最大数字之间的差。

我尝试了以下操作,但始终出现错误。我在做什么错了?

function differenceMinMax(array) {

     var arrayMin = array[0];
     var arrayMax = array [0];

     for  (var i=0; i <= array.length; i++) {

     if (array[i] < arrayMin) {
       arrayMin = array[i];
     } 
     if (array[i] > arrayMax) {
       arrayMax = array[i];
     }
    }

    return arrayMax - arrayMin;

    }

5 个答案:

答案 0 :(得分:0)

为使示例工作,可以在if / else子句中将else更改为else if。另外,将i <= array.length更改为i < array.length。数组的长度在数值上总是大于其最高索引(乘以1),因为在javascript中,索引从0开始。

这是使用ES6减少代码的方式。

const diff = (arr) => Math.max(...arr) - Math.min(...arr);

const arr1 = [1, 2, 3, 4, 5];
const arr2 = [99, 0, -99];

console.log(diff(arr1)); // Logs 4
console.log(diff(arr2)); // Logs 198

答案 1 :(得分:0)

  1. array [array.length]不存在,请更改

    i <= array.lenght

    i < array.length

  2. 更改

    else (array[i] > arrayMax)

    else if(array[i] > arrayMax)

答案 2 :(得分:0)

替换您的数组,然后尝试下面的代码,它将起作用。

var array = ['56', '1','9','0','20','2021'];
var max = min= 0;

for(var i=0; i<array.length; i++)
{
    if(parseInt(array[i]) > parseInt(max))
    {
    
      max = array[i]
      if(i == 0)
      min = max
    }
    else if(parseInt(array[i]) < parseInt(min))
    {
//console.log(max_2)    
      min = array[i];
    }
}
console.log("Maximum Number In Your Array "+ max)
console.log("Manimum Number In Your Array "+min)

答案 3 :(得分:0)

//We are going to sort the array, find the first & last elem of the array and perform the operation
var array = [9, 12, 14, 3, 5, 67];

var difference = differenceBetweenLargestAndSmallestElement(array);

console.log(difference);

function differenceBetweenLargestAndSmallestElement(array) {
  var sortedArray = array.sort(function(a, b) {
    return a - b
  });

  console.log(sortedArray);

  var firstElement = sortedArray[0];
  var lastElement = sortedArray[sortedArray.length - 1];

  return lastElement - firstElement;
}
  

请找到一个小提琴-https://jsfiddle.net/Ayyub/zysp63fm/12/

答案 4 :(得分:-1)

尝试:'var arrayMin = 0; var arrayMax = 0;'而不是'var arrayMin = array [0]; var arrayMax = array [0]'