Set.prototype.forEach()

forEach() 메서드는 주어진 함수를 Set 요소 각각에 대해 삽입 순서대로 실행합니다.

구문

mySet.forEach(callback[, thisArg])

매개변수

callback
각 요소에 대해 실행할 함수. 다음 세 가지 인수를 받습니다.
currentValue, currentKey
처리할 현재 요소. Set은 키를 갖지 않으므로 두 인수 모두에 값을 전달합니다.
set
forEach()를 호출한 Set.
thisArg
callback을 실행할 때 this로 사용할 값.

반환 값

undefined.

설명

forEach() 메서드는 주어진 callbackSet에 존재하는 요소에 대해 한 번씩 실행합니다. 삭제한 값에 대해선 실행하지 않습니다. 그러나 존재하되 값이 undefined인 경우엔 실행합니다.

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

  • 요소 값
  • 요소 키
  • 순회 중인 Set 객체

그러나 Set은 키 값을 사용하지 않으므로, 처음 두 개의 매개변수 모두 요소 값을 받습니다. 이는 Map과 Array에서 사용하는 forEach()와 동일한 형태를 유지하기 위해서입니다.

thisArg 매개변수를 forEach()에 제공한 경우 callback을 호출할 때 전달해 this의 값으로 쓰입니다. 전달하지 않으면 undefined를 사용하며, 최종 this 값은 함수의 this를 결정하는 평소 규칙을 따릅니다.

forEach()는 각각의 값을 한 번씩 방문하지만, 순회를 끝내기 전에 제거하고 다시 추가한 값은 예외입니다. 방문하기 전 제거한 값에 대해서는 callback을 호출하지 않습니다. forEach()가 끝나기 전 추가한 요소는 방문합니다.

forEach()Set 객체의 요소에 대해 callback을 실행만 하며 값을 반환하지는 않습니다.

예제

Set의 내용물 기록하기

다음 코드는 Set의 요소 각각을 새로운 줄에 기록합니다.

function logSetElements(value1, value2, set) {
    console.log('s[' + value1 + '] = ' + value2);
}

new Set(['foo', 'bar', undefined]).forEach(logSetElements);

// 콘솔 로그:
// "s[foo] = foo"
// "s[bar] = bar"
// "s[undefined] = undefined"

명세

Specification Status Comment
ECMAScript 2015 (6th Edition, ECMA-262)
The definition of 'Set.prototype.forEach' in that specification.
Standard Initial definition.
ECMAScript Latest Draft (ECMA-262)
The definition of 'Set.prototype.forEach' in that specification.
Draft  

브라우저 호환성

Update compatibility data on GitHub
DesktopMobileServer
ChromeEdgeFirefoxInternet ExplorerOperaSafariAndroid webviewChrome for AndroidFirefox for AndroidOpera for AndroidSafari on iOSSamsung InternetNode.js
forEachChrome Full support 38Edge Full support 12Firefox Full support 25IE Full support 11Opera Full support 25Safari Full support 8WebView Android Full support 38Chrome Android Full support 38Firefox Android Full support 25Opera Android Full support 25Safari iOS Full support 8Samsung Internet Android Full support 3.0nodejs Full support 0.12

Legend

Full support  
Full support

같이 보기