TIL 6 | Javascript_객체 : 배열(3)

Moon ·2021년 5월 31일
0

Javascript

목록 보기
5/16
post-thumbnail

3. 객체 (배열, 함수, 객체 리터럴)

7) 배열 응용 퀴즈 시간

Quiz>

다음 배열에서 '라'를 모두 제거하세요. indexOf 와 Splice를 사용하세요.

const array = ['가', '라', '다', '라', '마', '라' ];

(*'모두'라고 나오면 보통 반복문을 써야 한다.

또한 프로그램은 한번에 하나씩 찾아서 제거해 줄 수 있다.)

array.indexOf('라')

  > 1

  array.splice(1,1)

  > [" 라"]

  array

  > (5) ['가', '다', '라', '마', '라' ]

  array.indexOf('라')

  > 2

  array.splice(2,1)

  > [" 라"]

  array

  > (4) ['가', '다', '마', '라' ]

  array.indexOf('라')

  > 3

  array.splice(3,1)

  > [" 라"]

  array

  > (5) ['가', '다', '마']

  array.indexOf('라')

  > -1

*-1이 나오는 것은 '라'가 array 상단에 해당 값이 없기 때문이다.

 반복문을 사용하려면,

 const array = ['가', '라', '다', '라', '마', '라' ]; 

 let index = array.indexOf('라');

 while (index> -1) {

      array.splice(index, 1);

      index = array.indexOf('라');  // ***이게 없으면 무한 반복문이 된다. 
      저 부분이 없다면 index는 계속 1일 것이고 조건식이 계속 true가 돼서 무한 반복된다. 인덱스 1의 자리에 오게 된 '라'가 아닌 요소까지 지워짐

 }

       

QUIZ>

const arra = [1, 2, 3, 4, 5]

arr.indexOf(1)   // 0 번째   index

0  // 값이 0으로 나옴. *if문에서 'null', 'false', 0, 'Nan', 'defined', 빈문자열은 false로 나옴!

if (arr.indexOf(1)) {

    console.log('1 찾았다');

}   else { 

    console.log('1 못 찾았다');

}

값이 1 못찾았다

우리가 예상한 값과 다르게 나온다. if(0)은 무조건 false값이니까!!!

따! 라! 서!

아래와 같이 if ( ) 값이 false가 안되도록 바꿔보자.

if (arr.indexOf(1) > -1) {      // 값이 -1보다 크다고 설정하면 된다. 보통 indexOf가 나오면 꼭 > -1과 함께 다니는 것을 볼 수 있다.

    console.log('1 찾았다');

}   else { 

    console.log('1 못 찾았다');

}
profile
Welcome to my world! ☺️

0개의 댓글