let arr = [10, 20, 30, 40, 50];
위의 배열에서 20, 30을 제거하라.
arr[i]
를 이용해서 20과 30과 값을 비교한다.- 만약 그 값이 20과 같다면,
.splice
를 이용해서 값을 제거해준다.
2.1 만약 20과 같지않지만 30과 같다면,.splice
를 이용해서 값을 제거해준다.
let arr = [10, 20, 30, 40, 50];
for(let i = 0; i<arr.length; i++) {
if(arr[i] == 20) {
arr.splice(i, 1);
i-- // 부가설명
} else if(arr[i] == 30) {
arr.splice(i, 1);
i--
}
}
/*
i = 1일 때
arr[1] == 20 이므로, arr의 1번인덱스부터 1개의 값을 지운다.
그렇게되면 arr == [10, 30, 40, 50] 이 된다.
i--를 해주지 않는다면, i는 증가되어 2가 되고
arr[2]의 값은 우리의 예상순서인 30에게 가지 않고 40에게 가게된다.
이러한 순서 점프를 막기위해 지웠으면 i를 하나 감소시켜준다.
*/
console.log(arr);
> [10, 40, 50]