본문 바로가기
  • 삽질하는 자의 블로그
공부이야기

4. 검색 기능을 만들어보자! 배열, 객체 조작하기 [splice(), filter(), indexOf() ]

by 이게뭐당가 2022. 10. 5.

1. splice()

   :  배열안의 [ x번째] 값을 선택해, [ 삭제, 추가 ] 가 가능한 내장함수

 

사용 : splice( x ,y ,z )

  x :  "x" 번째 타겟하여

  y :   "y" 개를 삭제하고

  z :   "z" 를 추가

 

// 추가

const data = [1,2,3,4,5,6,7]

data.splice(1 , 0 , 9)

console.log(data)

==>> [ 1,9,2,3,4,5,6,7] 

index 1에 해당하는 곳에 9를 추가

 

// 삭제 및 추가

const data = [1,2,3,4,5,6,7]

data.splice(1 , 2 , 9)

console.log(data)

==>> [ 1,9,3,4,5,6,7] 

index 1 에 해당하는 숫자로부터 2개 지우고  9를 추가

 

 

2. filter() 와 indexOf()

    1) filter() :  조건에 맞는 것만 "남기겠다"

    2) indexOf() :  모든 배열을 뒤져, 조건에 맞으면 1, 맞지 않으면 -1을 반환하겠다

 

사용1) 기본배열 

  ==> [조건에 맞는 것만 남길것인데 ] , [콜백함수( parameter = item) 에 대하여], 

         [모든 배열]에서 [조건을 만족하는 것] 은  [ 결과 값이 -1 이 아닌것]  (만족하면 1이니까 -1 이 아님)

         즉, [ "a" 가 들어가 있는 배열의 값]

 

 

사용2) 객체가 담긴 배열 

 ==> 똑같은데 단지  item.객체키 만 다름

 

사용3) 여러 객체가 담긴 배열

 

==> 중요한점!! 반드시 배열 안의 객체키는, 모든 배열에 [공통적으로 가지고 있는 한가지 키가 있어야한다.]

    (여기에서는 name 이 된다.)

** 만약 각 배열의 객체 안에 [공통적인 키가 없어서, 검색이 불가능하다면 ]

     [반드시 선조건으로 배열안의 공통키가 없는 객체는 if조건으로 날려보내야한다]

 

 

 

추가1) 공통된 키가 없을때, 있는것만 남기는 방법. 또는, 이것저것 필터로 사용하는 방법

   ==> data4 배열에서, "key"라는 키를 가진 객체만 빼는 방법

 

 

추가2) 쿼리(검색조건) 을 유동적으로 사용해, 필터(검색하는 방법)

   동시에 존재하는 name 을 선택해, [ condition(조건) ] 을 유동적으로 적어, 필터링을 함

 

잘 익혀두었다가, 나중에 검색조건을 생성할때 써먹어봐야겠다

댓글