Computer >> Máy Tính >  >> Lập trình >> Javascript

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

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript lấy một mảng các số nguyên đã sắp xếp, arr, làm đối số đầu tiên và một số đích làm đối số thứ hai.

Hàm của chúng ta sẽ trả về một mảng chính xác hai số tồn tại trong mảng arr và gần đích nhất. Mảng đầu ra cũng nên đượ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ụ

Sau đâ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]