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

Làm cách nào để trả về đối tượng từ một mảng có giá trị khóa cao nhất cùng với tên - JavaScript?

Giả sử, chúng ta có một mảng đối tượng chứa thông tin về điểm của một số học sinh trong một bài kiểm tra -

const students = [
   { name: 'Andy', total: 40 },
   { name: 'Seric', total: 50 },
   { name: 'Stephen', total: 85 },
   { name: 'David', total: 30 },
   { name: 'Phil', total: 40 },
   { name: 'Eric', total: 82 },
   { name: 'Cameron', total: 30 },
   { name: 'Geoff', total: 30 }
];

Chúng tôi được yêu cầu viết một hàm JavaScript nhận vào một mảng như vậy và trả về một đối tượng có tên và tổng số học sinh có giá trị cao nhất trong tổng số.

Do đó, đối với mảng trên, kết quả đầu ra phải là -

{ name: 'Stephen', total: 85 } 

Ví dụ

Sau đây là mã -

const students = [
   { name: 'Andy', total: 40 },
   { name: 'Seric', total: 50 },
   { name: 'Stephen', total: 85 },
   { name: 'David', total: 30 },
   { name: 'Phil', total: 40 },
   { name: 'Eric', total: 82 },
   { name: 'Cameron', total: 30 },
   { name: 'Geoff', total: 30 }
];
const pickHighest = arr => {
   const res = {
      name: '',
      total: -Infinity
   };
   arr.forEach(el => {
      const { name, total } = el;
      if(total > res.total){
         res.name = name;
         res.total = total;
      };
   });
   return res;
};
console.log(pickHighest(students));

Đầu ra

Điều này sẽ tạo ra kết quả sau trên bảng điều khiển -

{ name: 'Stephen', total: 85 }