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

JavaScript - tìm khoảng cách giữa các mục trên mảng

Giả sử, chúng ta có một mảng Số được sắp xếp (thứ tự tăng dần) như thế này -

const arr = [2, 5, 7, 8, 9];

Chúng tôi được yêu cầu viết một hàm JavaScript có trong một mảng như vậy. Hàm phải tạo một mảng con mới cho mỗi phần tử của mảng đầu vào.

Mảng con phải chứa các phần tử khác biệt (sự khác biệt giữa chính phần tử đó và các phần tử kế tiếp).

Do đó, đối với phần tử mảng đầu tiên, sự khác biệt là -

5 - 2 = 3
7 - 2 = 5
8 - 2 = 6
9 - 2 = 7

Do đó, mảng con cho phần tử đầu tiên phải là -

[3, 5, 6, 7]

Tương tự, đối với phần tử thứ hai, nó phải là -

[2, 3, 4]

Đối với phần tử thứ ba -

[1, 2]

Thứ tư -

[1]

Và vì phần tử thứ năm là phần tử cuối cùng nên sẽ không còn mục nào cho nó, vì vậy chúng tôi sẽ không xem xét phần tử cuối cùng.

Do đó, đầu ra cho toàn bộ mảng phải là -

const output = [
   [3, 5, 6, 7],
   [2, 3, 4],
   [1, 2],
   [1]
];

Ví dụ

Mã cho điều này sẽ là -

const arr = [2, 5, 7, 8, 9];
const distanceBetween = (arr,r = []) => {
   if(r.length <= arr.length-2) {
      let temp = [];
      let b = arr[r.length];
      arr.forEach(e => temp.push(e - b));
      r.push(temp.filter(e => e > 0));
      return distanceBetween(arr,r);
   } else {
      return r;
   };
}
console.log(distanceBetween(arr));

Đầu ra

Và đầu ra trong bảng điều khiển sẽ là -

[ [ 3, 5, 6, 7 ], [ 2, 3, 4 ], [ 1, 2 ], [ 1 ] ]