TypedArray.prototype.forEach()

forEach() 메서드는 주어진 함수을 형식화 배열에 있는 각 요소에 대해 한 번씩 실행합니다. 이 메서드는 Array.prototype.forEach()와 동일한 알고리즘으로 동작합니다. 형식화 배열은 형식화 배열 타입 중 하나입니다.

시도해보기

구문

js
// Arrow function
forEach((element) => { /* ... */ } )
forEach((element, index) => { /* ... */ } )
forEach((element, index, array) => { /* ... */ } )

// Callback function
forEach(callbackFn)
forEach(callbackFn, thisArg)

// Inline callback function
forEach(function(element) { /* ... */ })
forEach(function(element, index) { /* ... */ })
forEach(function(element, index, array){ /* ... */ })
forEach(function(element, index, array) { /* ... */ }, thisArg)

매개변수

callbackFn

각 요소에 대해 실행할 함수.

다음 세 가지 매개변수를 받습니다.

element

현재 처리할 현재 요소.

index

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

array

forEach() 를 호출한 배열.

thisArg Optional

callbackFn을 실행할 때 this로 사용할 값.

반환 값

설명

forEach()는 주어진 callbackFn을 형식화 배열에 있는 각 요소에 대해 한 번씩 실행합니다. 삭제했거나 초기화하지 않은 인덱스에 대해서는 실행하지 않습니다. 그러나 undefined값을 가진, 존재하는 요소에 대해서는 실행합니다.

callbackFn은 다음 세 인수와 함께 호출됩니다.

  • 요소 값
  • 요소 인덱스
  • 순회 중인 배열

thisArg 매개변수를 forEach()에 제공한 경우 callbackFn을 호출할 때 전달해 this의 값으로 쓰입니다. 전달하지 않으면 undefinedthis 값으로 사용합니다. callbackFn이 최종적으로 관찰할 수 있는 this 값은 함수의 this를 결정하는 일반적인 규칙에 따라 결정됩니다.

forEach()로 처리할 요소의 범위는 최초 callbackFn 호출 전에 설정됩니다. forEach() 호출을 시작한 뒤 배열에 추가한 요소는 callbackFn이 방문하지 않습니다. 형식화 배열의 기존 요소값이 바뀐 경우, callbackFn에 전달하는 값은 forEach()가 요소를 방문한 시점의 값을 사용합니다. 방문하기 전에 삭제한 요소는 방문하지 않습니다.

forEach()는 각 형식화 배열 요소에 대해 한 번씩 callbackFn 함수를 실행합니다. every()some()와는 달리 undefined를 반환합니다.

예제

형식화 배열의 컨텐츠 기록하기

아래 코드는 형식화 배열의 각 요소당 한 줄의 로그를 남깁니다.

js
function logArrayElements(element, index, array) {
  console.log(`a[${index}] = ${element}`);
}

new Uint8Array([0, 1, 2, 3]).forEach(logArrayElements);
// Logs:
// a[0] = 0
// a[1] = 1
// a[2] = 2
// a[3] = 3

명세서

Specification
ECMAScript Language Specification
# sec-%typedarray%.prototype.foreach

브라우저 호환성

BCD tables only load in the browser

같이 보기