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

JavaScript에서 배열을 병합합니다.

<시간/>

중첩된 배열을 가져와 중첩 없이 배열에 있는 모든 요소가 포함된 배열을 반환하는 JavaScript 배열 함수를 작성해야 합니다.

예를 들어 -

//if the input is:
const arr = [[1, 2, 3], [4, 5], [6]];
//then the output should be:
const output = [1, 2, 3, 4, 5, 6];

따라서 이 함수의 코드를 작성해 보겠습니다 -

방법 1:재귀 사용

여기에서 원래의 중첩 배열을 반복하고 중첩된 요소 요소를 새 배열로 재귀적으로 푸시합니다.

예시

const arr = [[1, 2, 3], [4, 5], [6]];
const flatten = function(){
   let res = [];
   for(let i = 0; i < this.length; i++){
      if(Array.isArray(this[i])){
         res.push(...this[i].flatten());
      } else {
         res.push(this[i]);
      };
   };
   return res;
};
Array.prototype.flatten = flatten;
console.log(arr.flatten());

방법 2:Array.prototype.reduce() 사용

여기서 우리는 다음과 같은 새로운 배열을 생성하기 위해 reduce() 메소드를 사용할 것입니다 -

예시

const arr = [[1, 2, 3], [4, 5], [6]];
const flatten = function(){
   return this.reduce((acc, val) => {
      return acc.concat(...val);
   }, []);
};
Array.prototype.flatten = flatten;
console.log(arr.flatten());

출력

두 방법 모두에 대한 콘솔 출력은 -

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