728x90
1️⃣ for...in
for...in 문은 객체의 key를 하나씩 가져온다.
const obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
}
for (const key in obj) {
console.log(key + ' : ' + obj[key]);
}
// key1 : value1
// key2 : value2
// key3 : value3
2️⃣ for...of
for...of 문은 iterable한 속성을 지닌 String, Array, TypedArray, Map, Set 에서 값을 하나씩 가져온다.
객체는 iterable이 아니기 때문에 사용할 수 없다.
const obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
}
for (const value of obj) {
console.log(value); //TypeError: obj is not iterable
}
그렇기 때문에 Object.keys(object) 혹은 Object.values(object)를 통해 배열로 바꿔서 값을 가져와야 한다.
Object.entries(obejct)를 이용하면 enumerable 속성의 key와 value 배열을 동시에 가져올 수도 있다.
const obj = {
key1: 'value1',
key2: 'value2',
key3: 'value3',
}
for (const key of Object.keys(obj) {
console.log(key);
}
// key1
// key2
// key3
for (const key of Object.values(obj) {
console.log(key);
}
// value1
// value2
// value3
for (const [key, value] of Object.entries(obj) {
console.log(key + ' : ' + value);
}
// key1 : value1
// key2 : value2
// key3 : value3
728x90
'FRONTEND > Javascript' 카테고리의 다른 글
[JS] 일반 함수와 화살표 함수의 차이 (0) | 2023.05.17 |
---|---|
[JS] 심볼(Symbol) 자료형 (0) | 2023.04.19 |
[JS] textarea 높이 자동 조절 (0) | 2023.04.18 |
[JS] 원시타입과 참조타입 (0) | 2023.04.14 |
[JS] 생성자 함수 (0) | 2023.03.23 |