[TIL] Quiz-배열안의 특정 값 제거

jay__ss·2021년 12월 5일
0
post-thumbnail

for문과 splice를 이용한 제거

let arr = [10, 20, 30, 40, 50];

위의 배열에서 20, 30을 제거하라.

  1. arr[i]를 이용해서 20과 30과 값을 비교한다.
  2. 만약 그 값이 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]
profile
😂그냥 직진하는 (예비)개발자

0개의 댓글