如何從特定的數字集中找到一個最近的 أكبر 數字: JavaScript?


我們有一組數字,我們的要求是查詢一個與提供給函式的輸入作為特定數字相等的或最近的高於 key 的值。

數字集定義為 −

const numbers = {
   A:107,
   B:112,
   C:117,
   D:127,
   E:132,
   F:140,
   G:117,
   H:127,
   I:132,
   J:132,
   K:140,
   L:147,
   M:117,
   N:127,
   O:132
};

示例

此程式碼將是 −

const numbers = {
   A:107,
   B:112,
   C:117,
   D:127,
   E:132,
   F:140,
   G:117,
   H:127,
   I:132,
   J:132,
   K:140,
   L:147,
   M:117,
   N:127,
   O:132
};
const nearestHighest = (obj, val) => {
   let diff = Infinity;
   const nearest = Object.keys(obj).reduce((acc, key) => {
      let difference = obj[key] - val;
      if (difference >= 0 && difference < diff) {
         diff = difference;
         acc = [key];
      }
      return acc;
   }, [])
   return nearest;
};
console.log(nearestHighest(numbers, 140));

輸出

並且控制檯中的輸出將為 −

['F']

更新於:2020-11-21

111 檢視

開啟你的 職業

透過完成課程獲得認證

開始
廣告
© . All rights reserved.