배열 순서를 바꾼다면 코드로 어떻게 할 수 있을까?
const arr = [1, 2, 3, 4];
1부터 4까지 숫자 배열을 가진 arr의 첫 번째와 세 번째 값을 바꿔보자.
1. 임시 변수 사용하기
가장 먼저 떠오르는 방법은 새로운 변수에 변경하고자 하는 값을 담아주고 값을 바꿔주는 방법이다.
const arr = [1, 2, 3, 4];
const temp = 1;
arr[0] = arr[2];
arr[2] = temp;
console.log(arr) // [3, 2, 1, 4]
2. 구조 분해 할당(Destructuring Assignment) 사용하기
const arr = [1, 2, 3, 4];
[arr[0], [arr2]] = [arr[2], arr[0]]
console.log(arr) // [3, 2, 1, 4]
구조 분해 할당을 사용해서 배열 요소를 서로 교환하는 방법이다.
이는 우변 [arr[2], arr[0]]가 먼저 평가된 후, 좌변 [arr[0], [arr2]]에 하나씩 할당되는 방식이다.
우변 arr[2]는 3, arr[0]은 1이므로 정리해보자면 [arr[0], arr[2]] = [3, 1]이 된다.
좌변에 값 할당으로 arr[0]은 arr[2]의 값인 3을을 담게 된다.
arr[2]는 arr[0]의 값인 1이 담긴다.
그리고 arr[1], arr[3]은 변경한 것이 없으므로 유지가 된다.
3. splice method 사용
const arr = [1, 2, 3, 4];
const temp = arr[0];
arr.splice(0, 1, arr[2]);
arr.splice(2, 1, temp);
console.log(arr); // [3, 2, 1, 4]
splice를 사용하면 사라진 index에 맞춰 당겨지게 된다.
반대로 값을 추가하게 되면 index는 이에 맞춰 뒤로 밀린다.
index 변경이 한 번만 될 수 있도록 임시 변수에 원하는 값을 담았다.
splice로 0번째 자리에 2번째 값을 삽입한다.
그리고 임시 변수에 담아둔 값을 2번째 자리에 삽입한다.
이 외에도 다양한 방법이 있을 것같지만 개인적으로 구조 분해 할당이 제일 간결하고 편해보인다.
끝!
'공부합시다 > JS&TS' 카테고리의 다른 글
[알고리즘] 이분탐색 (1) | 2025.03.28 |
---|---|
비트연산 (1) | 2025.03.27 |
JavaScript로 이벤트 및 HTML요소 지우기 (1) | 2025.03.18 |
[개념 정리] 얕은 복사(Shallow Copy)&깊은 복사(Deep Copy) (1) | 2025.03.12 |
JavaScript에서 시간 다루기 (1) | 2024.09.05 |