TypedArray.prototype.forEach()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2016.

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

같이 보기