Tìm giá trị Max trong Array of Objects - học javascript thực chiến

Nội dung bài viết

Video học lập trình mỗi ngày

Học javascript qua thực chiến - Đây là tình huống bạn muốn tìm phần tử lớn nhất trong objects Array, có rất nhiều cách và cách nào tối ưu nhất.

Học javascript với tình huống thực tế

Tình huống thế này. Ví dụ trong list của bạn có những objects như sau:

const arr = [
    {name: 'cr7', age: 36},
    {name: 'cr8', age: 39},
    {name: 'cr9', age: 47},
    {name: 'cr10', age: 43},
    {name: 'cr11', age: 42},
]

Bài toán đưa ra: Làm thế nào để lấy được số tuổi lớn nhất và in nó ra. Đáp án chính xác là 47 vậy làm thế nào?

Get the Max id in an Array of Objects

Lập trình viên thì có nhiều levels, cụ thể là lv1 đến lv4 có thể là lvxxx. Chúng ta sẽ xem xét các phương pháp sau.

  • Cách 1 - Dùng forEach
let max = 0;
arr.forEach(user => {
  if (user.age > max) {
    max = user.age;
  }
})
console.log(`age::`, max); // 👉️ 47
  • Cách 2 - Dùng map và sort
const ids = arr.map(user => user.age);
const sorted = ids.sort((a, b) => a - b);
console.log(`age::`, sorted[sorted.length - 1]); // 👉️ 47

Hai cách trên thật sự chưa ngon lắm. Vậy còn cách khác ngon không? Thử xem...

  • Cách 3 - Dùng map và max Array.
const ids = arr.map(user => {
  return user.age;
});
console.log(ids); // 👉️ [36, 39, 47, 43, 42]

const max = Math.max(...ids);
console.log(max); // 👉️ 47

Nếu bạn muốn ngắn gọn hơn thì có thể code như sau:

const max = Math.max(...arr.map(user => {
  return user.age;
}));
console.log(max); // 👉️ 47

Hoặc ngắn hơn nữa thì như sau hén:

const max = Math.max(...arr.map(user => user.age));
console.log(max); // 👉️ 47

Lập trình thì cũng y chang vậy, từng bước chậm mà chắc, quan trọng không ngừng học tập từ blog và video lập trình từ các nguồn khác nhau. Chúc thành công!

Kết luận

Viết lách không hề đơn giản, một bài viết hoàn thành trong vài giờ thậm chí vài ngày của tác giả sẽ chỉ đổi lại vài giây chỉ để like & share từ bạn .

Có thể bạn đã bị missing