在 JavaScript 中,无需排序即可查找数组中最大数和最小数的差值


我们有一个数字数组,其排列顺序完全随机。我们的任务是编写一个函数,该函数接收这样一个数字数组,并返回其中最大数和最小数的差值,但不允许对数组进行排序。

因此,让我们为此函数编写代码:

我们将使用 `Array.prototype.reduce()` 函数从数组中选取最小和最大的数字,然后返回它们的差值。此函数的代码如下:

示例

const arr = [23, 65, 67, 23, 2, 6, 87, 23, 45, 65, 3, 234, 3];
const findDifference = arr => {
   if(!arr.length){
      return 0;
   }
   const creds = arr.reduce((acc, val) => {
      let { max, min } = acc;
      if(val > max){
         max = val;
      };
      if(val < min){
         min = val;
      };
      return { max, min };
   }, {
      max: -Infinity,
      min: Infinity
   });
   return creds.max - creds.min;
};
console.log(findDifference(arr));

输出

控制台输出将是:

232

更新于:2020年8月31日

273 次浏览

开启你的职业生涯

完成课程获得认证

开始学习
广告