Cho một mảng các số, chúng ta cần viết hàm nhận vào mảng và một số n, trả về đối tượng chứa số lượng phần tử lớn hơn và nhỏ hơn n.
Ví dụ
Mảng đầu vào:
const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];
Với n = 3:
Giải pháp
Sử dụng reduce để đếm:
const arr = [3, 5, 5, 2, 23, 4, 7, 8, 8, 9];
const greaterSmallerNumbers = (arr, num) => {
return arr.reduce((acc, val) => {
let { greater, smaller } = acc;
if (val > num) greater++;
if (val < num) smaller++;
return { greater, smaller };
}, { greater: 0, smaller: 0 });
};
console.log(greaterSmallerNumbers(arr, 3));
Kết quả
Đầu ra trong console:
{ greater: 8, smaller: 1 }
Giải thích: Có 8 phần tử > 3 (5,5,23,4,7,8,8,9) và 1 phần tử < 3 (2). Phần tử bằng 3 không được đếm.