Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

หาค่า n สูงสุดในอ็อบเจกต์ JavaScript

สมมติว่าเรามีอ็อบเจกต์อธิบายคุณสมบัติผู้เล่นฟุตบอล

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

เราอยากเขียนฟังก์ชันรับอ็อบเจกต์แบบนี้และตัวเลข n (n <= จำนวน key) คืนอ็อบเจกต์ที่มี n คู่ key-value สูงสุด

เช่น 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 }