기존에 배열같은 경우는 반복문을 사용할 때 용도에 따라서 forEach
와 map
을 사용했었다.
그런데 Object
같은 경우는 반복문을 어떻게 사용해야하는지 순간 까먹었었다.
그래서 반복문에 대해서 정리가 필요했다.
forEach
forEach문 밖으로 리턴값을 받지 못한다. 사용할때는 for문안에서 어떤한 작업을 하고 싶을 때 사용한다.1
2
3let arr = [1,2,3];
let b = arr.forEach((v) => { return v;})
console.log("b", b); //undefiendmap
새로운 배열을 리턴한다.
성능면에서도 map이 더 우수하다. map사용을 권장하는 분위기이다.1
2
3let arr = [1,2,3];
let b = arr.forEach((v) => { return v + 1;})
console.log("b", b); //[2,3,4]for in
객체의 속성들을 반복하여 작업수행 가능하다. key값에 접근할 수만있다.
여기서hasOwnProperty
로 각각의 object값들을 빼도 된다.hasOwnProperty
는 자신의 고유 속성, 즉 상속받은 프로퍼티가 아닌 순수 자신의 속성인 경우에만 값을 true로 반환한다.1
2
3
4
5
6
7
8
9
10
11
12
13var obj = {
a: 1,
b: 2,
c: 3
};
for (let i in obj) {
console.log(i); // a, b, c
console.log(obj[i]); //1,2,3
if (obj.hasOwnProperty(i)) {
console.log(obj[i])
}
}for of
ES6에 추가된 반복구문이다. 컬렉션 객체가[Symbol.iterator]
속성을 가지고 있어야만한다.1
2
3
4
5let iterable = [10, 20, 30];
for (let value of iterable) {
console.log(value); // 10, 20, 30
}객체를 반복문 돌리는 방법
1
2
3
4
5var obj = { first: "John", last: "Doe" };
Object.keys(obj).forEach(function(key) {
console.log(key, obj[key]);
});
1 | for (const key of Object.keys(obj)) { |
1 | Object.entries(obj).forEach( |