在 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 次瀏覽

開啟你的職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.