map, filter, find, some, every, reduce의 목적을 구분합니다.
map은 같은 개수의 새 배열, filter는 조건을 통과한 새 배열, find는 첫 항목을 반환합니다. some과 every는 boolean을 만들고 reduce는 여러 값을 하나로 누적합니다. 이 메서드들은 원본을 직접 바꾸지 않지만 콜백에서 객체 내부를 변경하면 원본 객체는 달라질 수 있습니다.
filter가 80점 이상인 95와 81만 원래 순서대로 남기고, map이 그 두 값을 합격 95점, 합격 81점이라는 문구로 바꿉니다. find는 90점 이상인 첫 값 95를, some은 100점이 없어 false를, every는 네 점수가 모두 0에서 100 사이라 true를 돌려줍니다. reduce는 0에서 출발해 네 점수를 더한 312를 만들고, 이를 4로 나눈 78이 평균입니다.
빈 배열에서는 검사할 항목이 없으므로 every가 true를, some이 false를 돌려줍니다. reduce는 초기값 없이 빈 배열에 호출하면 TypeError를 던지기 때문에 이 예제처럼 두 번째 인수 0을 넘겨 두는 편이 안전하지만, 평균을 낼 때는 길이 0으로 나누면 NaN이 되므로 빈 배열인지 먼저 확인합니다.
forEach는 반환값을 모아 새 배열을 만들지 않습니다. 변환 결과가 필요하면 map을 사용하세요.
직접 바꿔보세요기준 점수를 바꿔 filter, find, some, every 결과를 비교하세요.