Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript의 현재 요소와 이전 요소 간의 차이를 기반으로 정렬된 배열을 그룹화합니다.


다음과 같이 증가하는 순서로 정렬된 정수 배열이 있다고 가정해 보겠습니다. -

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

우리는 그러한 배열을 취하는 JavaScript 함수를 작성해야 합니다. 함수는 다음과 같은 방식으로 배열을 그룹화해야 합니다. -

  • 그룹 내 요소의 차이가 1 이하입니다.

  • 각 그룹 요소에는 유효한 것으로 간주되는 둘 이상의 요소가 있어야 합니다.

위의 조건을 기반으로 예상되는 출력은 -

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

예시

이에 대한 코드는 -

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));

출력

콘솔의 출력은 -

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