for of
for (variable of iterable) {
statement
}
반복가능한 객체 (Array, Map, Set, String, TypedArray, arguments 객체 등을 포함)에 대해서 반복한다. 컬렉션 전용.
const a = ['a', 'b', 'c'];
for (const [index, element] of a.entries())
console.log(index, element);
// 0 'a'
// 1 'b'
// 2 'c'
인덱스를 구하기 위해서는 entries() 메서드를 사용해야 한다.
중간에 break 문을 만나면 반복문을 중단한다.
forEach
arr.forEach(callback(currentvalue[, index[, array]])[, thisArg])
주어진 callback을 배열에 있는 각 요소에 대해 오름차순으로 한 번씩 실행한다.
callback 함수에서 값, 인덱스, 배열에 접근할 수 있다(for문보다 인덱스 값 접근이 편리).
map에서 값, 키, map에 접근하고, set에서는 키 값이 없기 때문에 키와 값이 동일하다(_를 사용해서 건너 뛸 수 있다).
var arr = [1,2,3,4,5];
var newArr = arr.forEach(function(e, i) {
return e;
});
// undefined
forEach()는 호출하는 배열을 변경할 수 있다.
값을 return할 수 없다. return해야 하는 경우 map을 사용해야 한다.
중간에 break문을 사용할 수 없다. break가 필요한 경우 for문을 실행해야 한다.
map
arr.map(callback(currentValue[, index[, array]])[, thisArg])
배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.
기존의 배열을 이용해, 새로운 배열을 생성할 때 사용한다.
중간에 break 문을 사용할 수 없다. break가 필요한 경우 for문을 실행해야 한다.
참조
반응형
'JavaScript' 카테고리의 다른 글
[Javascript] 이벤트 버블링과 캡처링 (0) | 2021.10.11 |
---|---|
[Javascript] DOM 노드 (1) | 2021.10.11 |
[Javascript] Optional Chaining (0) | 2021.09.23 |
[Javascript] 구조 분해 할당 (Destructing) (0) | 2021.09.15 |
[Javascript] 호이스팅 (Hoisting) (0) | 2021.09.13 |