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

Nhóm một mảng được sắp xếp dựa trên sự khác biệt giữa các phần tử hiện tại và trước đó trong JavaScript


Giả sử chúng ta có một mảng Số nguyên được sắp xếp theo thứ tự tăng dần như sau -

const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];

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 nên nhóm mảng theo cách sao cho -

  • Các phần tử trong một nhóm có sự khác biệt từ 1 trở xuống

  • Mỗi phần tử nhóm phải có nhiều hơn một phần tử để được coi là hợp lệ

Dựa trên các điều kiện trên, sản lượng dự kiến ​​sẽ là -

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

Ví dụ

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

const arr = [ 1, 2, 3, 5, 6, 7, 10, 12, 17, 18];
const groupNear = (arr = []) => {
   const res = [];
   for (let ind = 0; ind < arr.length; ind++) {
      let value = arr[ind];
      if (arr[ind − 1] + 1 === value) {
         res[res.length − 1].push(value);
      } else if (value + 1 === arr[ind + 1]) {
         res.push([value]);
      };
   };
   return res;
};
console.log(groupNear(arr));

Đầu ra

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

[ [ 1, 2, 3 ], [ 5, 6, 7 ], [ 17, 18 ] ]