자바스크립트 Array 클래스에는 강력하고 유연한 메서드가 많지만, 때로는 어떤 메서드가 최선일지 판단하기 어려울 때도 있습니다.
[표 8-1]부터 [표 8-4]는 Array 메서드를 요약한 겁니다.
콜백 함수를 받는 find, findIndex, some, every, map, filter, reduce에서 콜백 함수가 제공받는 매개변수는 [표 8-1]과 같습니다.
표 8-1 배열 함수의 매개변수(순서대로)
메서드 | 설명 |
---|
reduce에만 적용 | 누적값, 초깃값 또는 마지막 호출에서 반환한 값 |
모든 메서드 | 요소(현재 요소의 값) |
모든 메서드 | 현재 요소의 인덱스 |
모든 메서드 | 배열 자체(그다지 쓸모는 없음) |
콜백을 받는 메서드들은 또한 옵션으로 콜백을 호출할 때 this로 사용할 값을 받을 수 있습니다.
이 매개변수를 활용하면 콜백 함수를 메서드처럼 사용할 수 있습니다.
표 8-2 배열 컨텐츠 조작
하고 싶은 일 | 사용할 메서드 | 수정 또는 사본 |
---|
스택(후입 선출)을 만들 때 | push(바뀐 길이 반환), pop | 배열 수정 |
큐(선입 선출)를 만들 때 | unshift(바뀐 길이 반환), shift | 배열 수정 |
여러 요소를 배열 마지막에 추가할 때 | concat | 사본 반환 |
배열 일부가 필요할 때 | slice | 사본 반환 |
임의의 위치에 요소를 추가하거나 제거할 때 | splice | 배열 수정 |
배열 안에서 요소를 교체할 때 | copyWithin | 배열 수정 |
배열을 채울 때 | fill | 배열 수정 |
배열을 반대로 정렬할 때 | reverse | 배열 수정 |
배열을 정렬할 때 | sort(정렬 함수 사용 가능) | 배열 수정 |
표 8-3 배열 검색
찾고자 하는 것 | 사용할 메서드 |
---|
요소의 인덱스 | indexOf(단순한 값), findIndex(복잡한 값) |
인덱스를 뒤에서부터 찾을 때 | lastIndexOf(단순한 값) |
요소 자체 | find |
조건을 만족하는 요소가 들어있는지 확인할 때 | some |
모든 요소가 그 조건을 만족하는지 확인할 때 | every |
표 8-4 배열 변형
하고 싶은 일 | 사용할 메서드 | 수정 또는 사본 |
---|
배열의 모든 요소를 변형할 때 | map | 사본 반환 |
조건에 맞는 요소만 남길 때 | filter | 사본 반환 |
배열 전체를 다른 데이터 타입으로 변형할 때 | reduce | 사본 반환 |
요소를 문자열로 바꿔서 하나로 합칠 때 | join | 사본 반환 |