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 .