Set.prototype.forEach()
forEach()
메서드는 주어진 함수를 Set
요소 각각에 대해 삽입 순서대로 실행합니다.
시도해보기
구문
js
mySet.forEach(callback[, thisArg])
매개변수
callback
- 각 요소에 대해 실행할 함수. 다음 세 가지 인수를 받습니다.
-
currentValue
,currentKey
- 처리할 현재 요소.
Set
은 키를 갖지 않으므로 두 인수 모두에 값을 전달합니다. set
forEach()
를 호출한Set
.
thisArg
callback
을 실행할 때this
로 사용할 값.
반환 값
설명
forEach()
메서드는 주어진 callback
을 Set
에 존재하는 요소에 대해 한 번씩 실행합니다. 삭제한 값에 대해선 실행하지 않습니다. 그러나 존재하되 값이 undefined
인 경우엔 실행합니다.
callback
은 다음 세 인수와 함께 호출됩니다.
- 요소 값
- 요소 키
- 순회 중인
Set
객체
그러나 Set
은 키 값을 사용하지 않으므로, 처음 두 개의 매개변수 모두 요소 값을 받습니다. 이는 Map
과 Array
에서 사용하는 forEach()
와 동일한 형태를 유지하기 위해서입니다.
thisArg
매개변수를 forEach()
에 제공한 경우 callback
을 호출할 때 전달해 this
의 값으로 쓰입니다. 전달하지 않으면 undefined
를 사용하며, 최종 this
값은 함수의 this
를 결정하는 평소 규칙을 따릅니다.
forEach()
는 각각의 값을 한 번씩 방문하지만, 순회를 끝내기 전에 제거하고 다시 추가한 값은 예외입니다. 방문하기 전 제거한 값에 대해서는 callback
을 호출하지 않습니다. forEach()
가 끝나기 전 추가한 요소는 방문합니다.
forEach()
는 Set
객체의 요소에 대해 callback
을 실행만 하며 값을 반환하지는 않습니다.
예제
Set
의 내용물 기록하기
다음 코드는 Set
의 요소 각각을 새로운 줄에 기록합니다.
js
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 |
---|
ECMAScript Language Specification # sec-set.prototype.foreach |
브라우저 호환성
BCD tables only load in the browser