Javascript 2차원 배열 우아하게 복제하기

shleecloud·2023년 7월 18일
0

Algorithm

목록 보기
16/16

🌟️ JSON 직렬화 후 역직렬화

직렬화, 문자열로 변경 후 다시 배열로 변경
string, number, boolean 값을 가진 배열만 사용 가능
중첩이 일정하지 않더라도 적용 가능

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

// JSON 직렬화와 역직렬화를 통한 복제
const clonedArray = JSON.parse(JSON.stringify(originalArray));

console.log(clonedArray); // [[1, 2], [3, 4]]

map, slice로 복제

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

// 중첩 배열 복제
const clonedArray = originalArray.map(innerArray => innerArray.slice());

console.log(clonedArray); // [[1, 2], [3, 4]]

중첩이 일정하지 않은 복제

function cloneNestedArray(array) {
  if (!Array.isArray(array)) {
    return array; // 중첩 배열이 아닌 경우 복제하지 않고 반환
  }
  
  return array.map(item => cloneNestedArray(item));
}

const originalArray = [[1, 2], [3, [4, 5]]];
const clonedArray = cloneNestedArray(originalArray);

console.log(clonedArray); // [[1, 2], [3, [4, 5]]]
profile
블로그 옮겼습니다. https://shlee.cloud

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

정말 유익한 글이었습니다.

답글 달기