Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tìm hai phần tử gần nhất với số cụ thể trong mảng bằng JavaScript

Vấn đề

Chúng ta cần viết một hàm JavaScript nhận vào một mảng số nguyên đã sắp xếp arr làm đối số thứ nhất và một số mục tiêu target làm đối số thứ hai.

Hàm phải trả về một mảng đúng hai số tồn tại trong mảng arr và gần với target nhất. Mảng đầu ra cũng phải được sắp xếp theo thứ tự tăng dần.

Ví dụ, nếu đầu vào của hàm là:

Đầu vào

const arr = [1, 2, 3, 4, 5]; const target = 3;

Đầu ra

const output = [2, 3];

Ví dụ

Dưới đây là mã:

const arr = [1, 2, 3, 4, 5]; const target = 3; const findClosest = (arr = [], target = 1) => { const size = 2; return arr.sort((a, b) => { const distanceA = Math.abs(a - target); const distanceB = Math.abs(b - target); if (distanceA === distanceB) { return a - b; } return distanceA - distanceB; }).slice(0, size).sort((a, b) => a - b); }; console.log(findClosest(arr, target));

Đầu ra

[2, 3]