프로그래밍 언어 비교: 자바스크립트 vs 파이썬

2024-06-13

자바스크립트에서 다차원 배열 병합 및 평면화

때때로 여러 다차원 배열을 하나의 평면 배열로 병합하거나 평면 배열을 다차원 배열로 변환해야 할 수 있습니다. 자바스크립트에서 이러한 작업을 수행하는 데 사용할 수 있는 몇 가지 방법이 있습니다.

concat() 메서드는 두 개 이상의 배열을 하나의 배열로 결합하는 데 사용할 수 있습니다. 다차원 배열을 병합하는 데에도 사용할 수 있습니다. 예를 들어 다음 코드는 두 개의 2차원 배열을 하나의 2차원 배열로 병합합니다.

const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];

const mergedArray = array1.concat(array2);

console.log(mergedArray);

이 코드는 다음과 같은 출력을 생성합니다.

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

concat() 메서드는 여러 개의 배열을 병합하는 데 사용할 수도 있습니다. 예를 들어 다음 코드는 세 개의 2차원 배열을 하나의 2차원 배열로 병합합니다.

const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];
const array3 = [[9, 10], [11, 12]];

const mergedArray = array1.concat(array2, array3);

console.log(mergedArray);
[[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]

전개 연산자 사용

ES6부터 도입된 전개 연산자를 사용하여 다차원 배열을 평면 배열로 변환할 수 있습니다. 전개 연산자는 배열의 요소를 개별 요소로 배열에 추가합니다. 예를 들어 다음 코드는 2차원 배열을 평면 배열로 변환합니다.

const array1 = [[1, 2], [3, 4]];

const flattenedArray = [...array1];

console.log(flattenedArray);
[1, 2, 3, 4]
const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];

const flattenedArray = [...array1, ...array2];

console.log(flattenedArray);
[1, 2, 3, 4, 5, 6, 7, 8]

재귀 함수를 사용하여 다차원 배열을 평면 배열로 변환할 수도 있습니다. 재귀 함수는 자기 자신을 호출하는 함수입니다. 다음 코드는 재귀 함수를 사용하여 2차원 배열을 평면 배열로 변환하는 방법을 보여줍니다.

function flattenArray(array) {
  const flattenedArray = [];

  for (const element of array) {
    if (Array.isArray(element)) {
      flattenedArray.push(...flattenArray(element));
    } else {
      flattenedArray.push(element);
    }
  }

  return flattenedArray;
}

const array1 = [[1, 2], [3, [4, 5]]];

const flattenedArray = flattenArray(array



다차원 배열 병합 및 평면화 예제 코드

concat() 메서드 사용

// 두 개의 2차원 배열을 하나의 2차원 배열로 병합합니다.
const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];

const mergedArray = array1.concat(array2);

console.log(mergedArray);
// 세 개의 2차원 배열을 하나의 2차원 배열로 병합합니다.
const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];
const array3 = [[9, 10], [11, 12]];

const mergedArray = array1.concat(array2, array3);

console.log(mergedArray);

전개 연산자 사용

// 2차원 배열을 평면 배열로 변환합니다.
const array1 = [[1, 2], [3, 4]];

const flattenedArray = [...array1];

console.log(flattenedArray);
// 두 개의 2차원 배열을 하나의 평면 배열로 병합합니다.
const array1 = [[1, 2], [3, 4]];
const array2 = [[5, 6], [7, 8]];

const flattenedArray = [...array1, ...array2];

console.log(flattenedArray);

재귀 함수 사용

// 재귀 함수를 사용하여 2차원 배열을 평면 배열로 변환합니다.
function flattenArray(array) {
  const flattenedArray = [];

  for (const element of array) {
    if (Array.isArray(element)) {
      flattenedArray.push(...flattenArray(element));
    } else {
      flattenedArray.push(element);
    }
  }

  return flattenedArray;
}

const array1 = [[1, 2], [3, [4, 5]]];

const flattenedArray = flattenArray(array1);

console.log(flattenedArray);

reduce() 메서드 사용

// 2차원 배열을 평면 배열로 변환합니다.
const array1 = [[1, 2], [3, 4]];

const flattenedArray = array1.reduce((acc, cur) => acc.concat(cur), []);

console.log(flattenedArray);

flatMap() 메서드 사용 (ES2019 이상)

// 2차원 배열을 평면 배열로 변환합니다.
const array1 = [[1, 2], [3, 4]];

const flattenedArray = array1.flatMap(element => element);

console.log(flattenedArray);

위 코드는 다차원 배열을 병합 및 평면화하는 데 사용할 수 있는 몇 가지 방법을 보여줍니다. 사용할 방법은 특정 요구 사항에 따라 다릅니다.




자바스크립트에서 다차원 배열을 병합 및 평면화하는 대체 방법

for 루프를 사용하여 다차원 배열을 수동으로 병합 및 평면화할 수 있습니다. 이 방법은 다소 복잡하고 오류 발생 가능성이 더 높지만, 특정 상황에서 유용할 수 있습니다. 예를 들어 다음 코드는 for 루프를 사용하여 2차원 배열을 평면 배열로 변환합니다.

function flattenArray(array) {
  const flattenedArray = [];

  for (const row of array) {
    for (const element of row) {
      flattenedArray.push(element);
    }
  }

  return flattenedArray;
}

const array1 = [[1, 2], [3, 4]];

const flattenedArray = flattenArray(array1);

console.log(flattenedArray);

라이브러리 사용

예를 들어 다음 코드는 Lodash를 사용하여 2차원 배열을 평면 배열로 변환하는 방법을 보여줍니다.

const _ = require('lodash');

const array1 = [[1, 2], [3, 4]];

const flattenedArray = _.flatten(array1);

console.log(flattenedArray);

성능 고려

다차원 배열을 병합 및 평면화하는 방법을 선택할 때 성능을 고려하는 것이 중요합니다. 큰 배열을 처리하는 경우 concat() 메서드나 전개 연산자와 같은 간단한 방법을 사용하는 것이 가장 효율적일 수 있습니다. for 루프나 재귀 함수와 같은 더 복잡한 방법은 더 느릴 수 있습니다.

결론


javascript arrays multidimensional-array


자바스크립트를 사용하여 페이지 상단으로 스크롤하는 방법

다음은 자바스크립트를 사용하여 페이지 상단으로 스크롤하는 간단한 방법입니다.HTML 요소 만들기먼저 페이지 상단으로 이동 버튼을 위한 HTML 요소를 만들어야 합니다. 다음은 버튼을 만들기 위한 간단한 HTML 코드입니다...


터치 스크린 장치 감지: 자바스크립트, jQuery 및 Touch 사용 방법

다음은 window. ontouchstart 이벤트를 사용하여 터치 스크린 장치를 감지하는 방법을 보여주는 간단한 예제입니다.이 코드는 사용자가 터치 스크린 장치에서 웹 페이지를 터치할 때마다 경고창을 표시합니다.좀 더 복잡한 터치 이벤트 처리를 위해 jQuery와 같은 라이브러리를 사용할 수 있습니다...


자바스크립트, HTML, CSS를 사용한 쿠키 설정 및 가져오기

쿠키 설정자바스크립트를 사용하여 쿠키를 설정하려면 document. cookie 속성을 사용합니다. 다음은 쿠키 이름을 "count"이고 값을 "1"로 설정하는 예제입니다.쿠키를 설정할 때 여러 옵션을 추가할 수 있습니다...


React에서 '렌더 후' 코드 실행: 대체 방법

useEffect 훅은 컴포넌트 렌더링 후, 상태 변경 후 또는 특정 종속성이 변경될 때 코드를 실행하는 데 사용됩니다. 렌더링 후 코드를 실행하려면 빈 종속성 배열을 사용하십시오. 예를 들어:componentDidMount 라이프사이클 메서드 사용:...


자바스크립트/타입스크립트에서 객체 복제(cloning) 완벽 가이드

개념:얕은 복제는 객체의 속성만 복제하여 새로운 객체를 만드는 방법입니다. 하위 객체는 복제되지 않고 참조만 복사됩니다.장점:빠르고 간단메모리 효율적단점:하위 객체는 복제되지 않음참조를 변경하면 원본 객체에도 영향이 미침...


javascript arrays multidimensional array