首页 > 解决方案 > 数组中最小数和最大数之差

问题描述

我坚持以下任务。

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

我已经尝试了以下但不断收到错误。我究竟做错了什么?

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;

    }

标签: javascriptarrays

解决方案


为了使您的示例正常工作,您可以在 if/else 子句中更改您的elseto else if。此外,更改i <= array.lengthi < 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


推荐阅读