7.7 Deleting To Dos (2)

gangmin·2021년 12월 26일
0

강의

array에서 어떻게 element를 삭제하는지 알기 위해, 10000000000% function paintToDo( ) 에서 어떤 일이 일어나는지 이해해야 한다.

filter

만약 array에서 뭔가를 삭제할 때, 실제로 array에서 그걸 지우는게 아니다. 진짜 일어나는 일은 지우고 싶은 item을 빼고 새 array를 만든다. item을 지우는게 아니라 item을 제외하는거다.
그래서 예전 array는 여전히 있고, 지우고 싶은 itme을 제외하고 새 array를 만드는거다.
filter함수를 사용하면 된다.

array.filter(함수) : 함수를 불러서 array에 있는 각각의 item에 차례대로 실행된다.

만약 새 array에서 이 obj를 유지하고 싶으면 함수는 반드시 true를 리턴해야한다.
= false를 리턴하면 그 item은 새 array에 포함되지 않을거다.

콘솔창에서
function sexyFilter(item){return item !== 3} // 3과 다르면 true를 반환
[1,2,3,4,5].filter(sexyFilter)
>> [1,2,4,5]

JS가 array의 각 item을 함수의 첫번째 인자로 전달해준다.


이제 toDos DB가 어떻게 생겼는지 알아보자. 로컬에서 value에 해당하는걸 들고옴.

만약 내가 삭제하고 싶은 id와 다르면 todo를 array에 그대로 둘거다.

콘솔창에서

const todos = [
		{"text":"a","id":1640508030569},
		{"text":"b","id":1640508030934},
		{"text":"c","id":1640508031261}]

function sexyFilter(todo){return todo.id !== 1640508030569 } 
todos.filter(sexyFilter)
>> 0: {text: 'b', id: 1640508030934}
   1: {text: 'c', id: 1640508031261}
   length: 2
   [[Prototype]]: Array(0)

삭제시키고 싶지 않은 것만 살아남았다! id말고 text로 삭제도 가능은 하다.

다음강의때는 진짜 todo를 로컬에서 지워보자!

0개의 댓글