📌 배열의 특정 값 제거하기
- 배열의 전체 값 제거
- 배열의 첫번째 값 제거
- 배열의 역순으로 값 제거
- 배열의 특정 index 값 제거
- 배열의 특정 값 제거
1️⃣ 배열의 전체 값 제거
비어있는 배열 할당
let arr = ['a', 'b', 'c'];
arr = [];
console.log(arr.length); // 0
배열의 길이를 0으로 변경
let arr = ['a', 'b', 'c'];
let arr2 = arr;
arr.length = 0;
console.logn(arr.length); // 0
console.log(arr2.length); // 0
🚩 비어있는 배열 할당 vs 배열의 길이를 0으로 변경
위 두 가지 방법은 배열을 참조하는 변수가 있을 경우에 차이점이 있다.
비어있는 배열 할당
배열에 비어있는 배열을 새로 할당하는 경우 arr1에는 새로운 배열이 할당되지만,
arr2는 영향을 받지 않고 원래의 배열(=원본)을 참조하게 된다.
배열의 길이를 0으로 변경
배열의 길이를 0으로 변경하는 경우에는 arr1의 length 값만 0으로 변경하는 것이기 때문에
arr2가 참조하는 배열도 길이가 0이 된다.
2️⃣ 배열의 첫번째 값 제거
shift( ) 를 사용하여 배열의 첫번째 값을 제거할 수 있다.
let arr = ['a', 'b', 'c'];
arr.shift();
console.log(arr); // ['b', 'c']
3️⃣ 배열의 역순으로 값 제거
배열의 길이 지정
let arr = ['a', 'b', 'c', 'd'];
arr.length = 2;
console.log(arr); // ['a', 'b']
배열의 전체 값을 제거할 때 length를 0으로 설정했던 것과 마찬가지로 배열의 역순으로 값을 제거하고 싶을 때는 원하는 길이만큼 배열의 length 값을 설정하면 그 이후의 값이 제거(=뒤에서부터 짤리게)된다.
pop() 함수 사용
pop( ) 를 사용하여 배열의 마지막 값을 제거할 수 있다.
let arr = ['a', 'b', 'c', 'd'];
arr.pop();
console.log(arr); // ['a', 'b', 'c']
4️⃣ 배열의 특정 index 값 제거
splice( ) 는 배열의 특정 위치에 값을 추가하거나 삭제할 때 사용하는 함수이다.
let arr = ['a', 'b', 'c', 'd'];
arr.splice(1, 2);
console.log(arr); // ['a', 'd']
arr.splice(1, 2);
→ 배열의 index 1부터 2개의 원소를 삭제
5️⃣ 배열의 특정 값 제거
반복문과 splice( )
반복문과 조건문, splice( ) 를 이용하여 특정값을 제거할 수 있다.
* splice( ) 를 사용해서 값을 제거하면 배열의 길이가 변하기 때문에 i의 값을 감소시키는 것(i--)에 주의
let arr = ['a', 'b', 'b', 'c'];
for(let i = 0; i < arr.length; i++) {
if(arr[i] === 'b') {
arr.splice(i, 1);
i--;
}
}
console.log(arr); // ['a', 'c']
filter( )
filter( ) 는 특정 조건에 부합하는 값을 모아서 새로운 배열을 만들어서 리턴한다.
let arr = ['a', 'b', 'b', 'c'];
let filtered = arr.filter((element) => element !== 'b');
console.log(arr); // ['a', 'b', 'b', 'c']
console.log(filtered); // ['a', 'c']
'Frontend > JavaScript' 카테고리의 다른 글
[JS] 자바스크립트 함수 파라미터 기본값 설정하기 (0) | 2022.02.25 |
---|---|
[JS] 자바스크립트 함수 실행 시간 측정하기 (0) | 2022.02.24 |
[JS] 자바스크립트 배열의 합계, 평균 구하기 (1) | 2022.02.21 |
[JS] 배열에서 특정 값 개수 구하기 (0) | 2022.02.19 |
[JS] 자바스크립트 배열의 최댓값, 최솟값 구하기 (0) | 2022.02.18 |
최근댓글