找到物件中 JavaScript 的 n 個最高值


比如說,我們有一個描述足球運動員各種素質的物件,如下所示 −

const qualities = {
   defence: 82,
   attack: 92,
   heading: 91,
   pace: 96,
   dribbling: 88,
   tenacity: 97,
   vision: 91,
   passing: 95,
   shooting: 90
};

我們希望編寫一個函式,它接受這樣的物件和一個數字 n(n <= 物件中的鍵數),並返回一個具有 n 個最高鍵值對的物件。

例如 n = 2

輸出應該是 −

{
   tenacity: 97,
   pace: 96
}

因此,讓我們為此函式編寫程式碼,

此函式的完整程式碼如下 −

示例

const qualities = {
   defence: 82,
   attack: 92,
   heading: 91,
   pace: 96,
   dribbling: 88,
   tenacity: 97,
   vision: 91,
   passing: 95,
   shooting: 90
};
const pickHighest = (obj, num = 1) => {
   const requiredObj = {};
   if(num > Object.keys(obj).length){
      return false;
   };
   Object.keys(obj).sort((a, b) => obj[b] - obj[a]).forEach((key, ind) =>
   {
      if(ind < num){
         requiredObj[key] = obj[key];
      }
   });
   return requiredObj;
};
console.log(pickHighest(qualities, 3));

輸出

控制檯中的輸出將為 −

{ tenacity: 97, pace: 96, passing: 95 }
{ tenacity: 97 }
{ tenacity: 97, pace: 96, passing: 95, attack: 92, heading: 91 }

更新日期:20-8-2020

1000 多次瀏覽

啟動您的職業

完成課程即可獲得認證

開始吧
廣告