함수를 인자로 받거나 함수를 반환하는 함수를 말한다.
Array.sort()는 원본 배열의 요소를 정렬하여 반환한다.
const names = ['Ben', 'June', 'Atom'] names.sort()
console.log(names) // ['Atom', 'Ben', 'June']
✔️ sort 메소드는 기본적으로 오름차순(유니코드 코드 포인트)으로 정렬한다.
따라서 숫자 요소를 정렬할 경우 주의해야한다.
Array.reverse() 를 이용하면 배열의 순서를 뒤집어 반환할 수 있다.
names.reverse() console.log(names) // ['June', 'Ben', 'Atom']
Array.filter()는 원본 배열에 있는 각 원소에 대해,
조건에 맞는 모든 원소를 새로운 배열로 반환해주는(필터링) 함수이다.
const num = [1,2,3,4,5,6,7,8,9,10]
num.filter((item)=>(item<=5)) => (8) [1, 2, 3, 4, 5]
Array.map()은 자신을 호출한 배열의 모든 요소를 확인하며 인자로 전달받은 콜백 함수를 반복 호출한다.
map 메서드는 배열의 원소를 일괄적으로 변형하기에 유용하다.
const classmate = ["영우","민우","준호"]
classmate.map((item)=>(item+"어린이")) => (3)["영우어린이","민우어린이","준호어린이"]
✔️ map은 배열의 길이만큼 원소 값이 나오지만, filter는 조건에 걸러지는 원소는 제외됨에 따라 원본 배열의 길이보다 작아질 수 있다.
✔️ map 메서드와 유사하지만, forEach는 단순히 반복문을 대체하기 위한 것으로 새로운 배열을 반환하지 않고 undefined를 반환한다.
Array.every()는 filter와 같이 주어진 조건을 통과하는지 각 요소들을 검사하지만 새로운 배열을 반환하는 것이 아니라 Boolean 값으로 반환한다.
즉, 콜백함수의 반환값이 모두 참이면 true, 하나라도 거짓이면 false를 반환한다.
[1,2,3].every(item => item < 4) // true [1,2,10].every(item => item < 4) // false