Computer >> Máy Tính >  >> Lập trình >> Javascript

Tìm n giá trị cao nhất trong JavaScript đối tượng

Giả sử, chúng tôi có một đối tượng mô tả các phẩm chất khác nhau của một cầu thủ bóng đá như thế này -

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

Chúng tôi muốn viết một hàm nhận đối tượng như vậy và một số n (n <=số khóa trong đối tượng) và trả về một đối tượng có n cặp giá trị khóa cao nhất.

Thích cho n =2

Đầu ra phải là -

{
   tenacity: 97,
   pace: 96
}

Do đó, hãy viết mã cho chức năng này,

Mã hoàn chỉnh cho chức năng này sẽ là -

Ví dụ

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));

Đầu ra

Đầu ra trong bảng điều khiển sẽ là -

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