[JavaScript] Array for, forEach, map, filter, reduce 정리

nang_zz·2022년 12월 7일
1
post-thumbnail

Array.from()

유사 배열 객체(length속성과 인덱싱 요소를 가진 객체)나 반복 가능한 객체를 얕게 복사해 새로운 Array 객체를 만든다.

Array.from(arrayLike, mapFn, thisArg)

  • arrayLike: 배열로 변환하고자 하는 유사 배열 객체/반복 객체
  • mapFn은 arrayLike를 array로 변환 후 실행할 map 함수로 Array.from(arrayLike).map(mapFn) 과 같다.

string -> 배열

Array.from('foo');
// ['f', 'o', 'o']
// 참고) [...'foo']의 결과와 같음

Map객체의 key만 가져오기

const mapper = new Map([['U', 1], ['D', 2]]);
Array.from(mapper.keys());
// ['U', 'D']

mapFn 활용

Array.from({length: 5})만 실행 시 값이 모두 undefined인 길이가 5인 배열이 만들어짐.

Array.from({ length: 5 }, (v, i) => i);
// [0, 1, 2, 3, 4]

각 메서드를 언제 사용해야할까?

  • for: break문을 만나면 반복문 중단 가능
  • forEach: 배열의 각 요소에 대해 callback 실행,break문 사용 불가
  • map: 배열의 각 요소에 callback 실행 후, 실행결과를 모은 새 배열로 리턴
  • filter:배열의 각 요소에 callback 조건을 통과한 요소들만 새 배열로 리턴
  • reduce: 배열의 각 요소에 reducer 함수 실행 후, 하나의 결과값 반환

array.forEach()

배열의 각 요소를 처음부터 끝까지 순회할 때 사용.
map()reduce()와는 달리 undefined를 반환하기 때문에 메서드 체인의 중간에 사용할 수 없다.

arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])

callback
각 요소에 대해 실행할 함수. 다음 세 가지 매개변수를 가진다.

currentValue
처리할 현재 요소.

index
처리할 현재 요소의 인덱스.

array
forEach()를 호출한 배열.

thisArg
callback을 실행할 때 this로 사용할 값.

반환 값 undefined

array.map()

배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.

arr.map(callback(currentValue[, index[, array]])[, thisArg])

callback
새로운 배열 요소를 생성하는 함수. 다음 세 가지 인수를 가진다.

currentValue
처리할 현재 요소.

index
처리할 현재 요소의 인덱스.

array
map()을 호출한 배열.

thisArg
callback을 실행할 때 this로 사용되는 값.

array.filter()

주어진 함수의 테스트를 통과하는 모든 요소를 모아 새로운 배열로 반환한다.
arr.filter(callback(currentValue[, index[, array]])[, thisArg])

callback
각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버린다

다음 세 가지 매개변수를 가진다.

currentValue
처리할 현재 요소.

index
처리할 현재 요소의 인덱스.

array
filter를 호출한 배열.

thisArg
callback을 실행할 때 this로 사용하는 값.

array.reduce()

arr.reduce(callback([acc, currentValue[, index, array]])[, initialValue])
배열의 각 요소에 대해 주어진 리듀서(reducer) 함수를 실행하고, 하나의 결과값을 반환한다.

callback

배열의 각 요소에 대해 실행할 함수. 다음 네 가지 인수를 가진다.

acc
누산기는 콜백의 반환값을 누적. 콜백의 이전 반환값 또는, 콜백의 첫 번째 호출이면서 initialValue를 제공한 경우에는 initialValue의 값.

currentValue
처리할 현재 요소.

index
처리할 현재 요소의 인덱스. initialValue를 제공한 경우 0, 아니면 1부터 시작.

array
reduce()을 호출한 배열.

thisArg
callback의 최초 호출에서 첫 번째 인수에 제공하는 값. 초기값을 제공하지 않으면 배열의 첫 번째 요소를 사용. 빈 배열에서 초기값 없이 reduce()를 호출하면 오류가 발생.

profile
블로그 이전했어요. fine-dev.site

0개의 댓글