Cho một mảng số, ví dụ:
const arr = [12, 54, 6, 23, 87, 4, 545, 7, 65, 18, 87, 8, 76];Chúng ta cần viết một hàm chọn phần tử nhỏ nhất và lớn nhất từ mảng, trả về mảng hai số với nhỏ nhất ở chỉ số 0 và lớn nhất ở chỉ số 1.
Chúng ta sẽ dùng Array.prototype.reduce() để xây dựng mảng min-max như sau:
Ví dụ
const arr = [12, 54, 6, 23, 87, 4, 545, 7, 65, 18, 87, 8, 76];
const minMax = (arr) => {
return arr.reduce((acc, val) => {
if (val < acc[0]) {
acc[0] = val;
}
if (val > acc[1]) {
acc[1] = val;
}
return acc;
}, [Infinity, -Infinity]);
};
console.log(minMax(arr));Kết quả
Đầu ra trong console sẽ là:
[ 4, 545 ]