Viết hàm nhận mảng số và một số, trả về giá trị trong mảng gần nhất với số đó.
Ví dụ:
closest([45,61,53,98,54,12,69,21], 67); //69 closest([45,61,53,98,54,12,69,21], 64); //61
Dùng reduce() tính hiệu tuyệt đối, giữ hiệu nhỏ nhất, cộng lại số cần tìm.
Ví dụ
const closest = (arr, num) => { return arr.reduce((acc, val) => { if(Math.abs(val - num) < Math.abs(acc)){ return val - num; }else{ return acc; } }, Infinity) + num; } console.log(closest([45,61,53,98,54,12,69,21], 67)); console.log(closest([45,61,53,98,54,12,69,21], 64));Kết quả
Đầu ra console:
69 61