Day 7 - Array Cardio Day 2
Full Script
1 | // Data |
some, every
some은 하나라도 조건을 만족하면 true를 반환하고, every는 모두 조건을 만족해야 true을 반환한다. 사용법은 매우 간단하다. some과 every는 format이 동일하므로 some만 살펴보자.
1 | const isAdult = people.some((person) => new Date().getFullYear() - person.year >= 19); |
Arrow Function으로 작성되었는데 풀어보면
1 | const isAdult = people.some(function (person) { |
이것과 똑같다. 특정 조건이 참인지 여부를 검사하고 boolean 값을 반환한다.
find, findIndex
1 | const comment = comments.find((comment) => comment.id === 823423); |
find는 말 그대로 특정 조건에 부합하는 데이터를 찾고, 그 첫 번째 데이터를 반환한다. 단 하나의 객체만 반환할 수 있다.
1 | const index = comments.findIndex((comment) => comment.id === 823423); |
findIndex는 find와 거의 동일하지만 객체 배열에서 특정 조건을 찾았을 때 객체를 반환하는 것이 아닌, 인덱스를 반환한다.
splice
splice의 기본 문법은 다음과 같다.
1 | array.splice(start[, deleteCount[, item1[, item2[, ...]]]]) |
이번 예제에서 splice를 사용한 방법은
1 | comments.splice(index, 1); |
위의 문법에 대입해서 생각하면 이전에 찾은 index값을 시작으로 1개의 값을 삭제한다.
spread (전개구문)
위의 splice를 사용하는 방법도 있지만, spread 구문을 사용하는 방법도 있다. 전개구문은 ...을 배열에 붙여서 사용하는데, unpack의 개념과 비슷하다.
1 | arr = [1,2,3] |
이렇게 배열의 껍데기를 벗기고 내용물을 보여준다.
예제의 splice, 즉 index의 내용을 제외한 나머지 comments를 보여주기 위해서는,
1 | const newComments = [ |
index를 기준으로 앞에서 자르고 뒤에서 잘라서 붙여주면 된다. ...를 사용하지 않으면 object 객체끼리 합쳐지기 때문에 내용물을 붙이기 위해 전개 구문을 사용한다.