티스토리 뷰

반응형

 

 

목차

     


    JavaScript에서 배열을 여러 개로 나누기

    개발을 하다보면 대용량의 데이터를 다루어야 할 때가 찾아오는데요. 한 번에 처리를 하면 메모리 문제가 생겨서 분할처리를 할 상황이 생기게 됩니다. 이럴 때는 배열을 나눠서 따로 처리를 해줘야 합니다. 어떻게 처리를 하는지 간단하게 함수를 생성하여 알아보도록 하겠습니다.

     

     

     

     

    배열 확인

     

    다음과 같은 배열이 있다고 가정을 해보겠습니다.

    실제로는 얼마 되지 않는 데이터이지만, 대용량이라고 가정을 하고 생각을 해보겠습니다.

    let arrayData = ['국어', '영어', '과학', '수학', '도덕', '체육', '사회', '한문' ]

     

    너무 많아서 데이터를 두개씩 잘라서 작업을 해야 부하가 오지 않습니다.

     

    이럴 때는 어떻게 처리를 해야 할까요..?

     

     

     

     

    배열을 나누는 함수 생성

     

    다음은 배열을 여러 개로 나눌 수 있게 구현된 함수입니다. 코드를 보면 바로 이해가 되실 겁니다.

     

     

    function ArraySplit (data, size) {
      
      // 나눴을 때의 배열 갯수
      let count = Math.floor(data.length, size) + Math.floor(data.length % size) > 0 ? 1 : 0 
      let resultData = []; // 결과 Data
    
      for (let i = 0; i < count; i++) {
        resultData.push(data.splice(0, size));
      }
    
      return resultData;
    }

     

     

    변수

    data = 원본 Data

    size = 나눌 개수

     

    count = data를 size단위로 나누었을 때의 배열 길이

    resultData = 리턴해줄 새로운 배열

     

    반복문을 돌면서 data를 splice로 잘라 resultData에 넣어줍니다.

     

     

     

    splice를 사용하는 이유

    - splice 함수를 사용하면, 원본 배열인 data가 설정한 길이만큼 사라집니다.

     

     

     

     

    사용 방법

     

    다음과 같이 함수를 호출하면 끝납니다.

    2개씩 잘라서 새로운 배열을 만들어야 하기 때문에 size는 2로 설정해줍니다.

     

    let splitData = ArraySplit(arrayData, 2);
    
      console.debug(splitData[0]);
      console.debug(splitData[1]);
      console.debug(splitData[2]);
      console.debug(splitData[3]);

     

    디버그로 데이터를 확인해보면 다음과 같이 나오는 것을 볼 수 있습니다.

     

      ['국어', '영어']
      ['과학', '수학']
      ['도덕', '체육']
      ['사회', '한문']

     

     

     

     

    마무리

     

    이상 Java Script에서 배열을 여러 개로 나누는 방법에 대해서 알아보았습니다.

    반응형