Iteration Object
기존 코드에서 객체를 순환 처리할 경우, for..in문을 사용했습니다.
var picture = {
large: 'https://randomuser.me/api/portraits/men/65.jpg',
medium: 'https://randomuser.me/api/portraits/med/men/65.jpg',
thumbnail: 'https://randomuser.me/api/portraits/thumb/men/65.jpg'
};
for (var key in picture) {
if (picture.hasOwnProperty(key)) {
var value = picture[key];
console.log(key, value);
}
}
ES6+ 부터 객체를 순환 처리할 경우 for..of문을 사용할 수 있습니다.
Object.keys()
객체의 속성을 배열 객체로 반환합니다.
const picture_keys = Object.keys(picture);
// 출력: ['large', 'medium', 'thumbnail']
for (let key of picture_keys) {
console.log(key);
}
Object.values()
객체의 값을 Iterable 프로토콜에 준하는 객체로 반환합니다.
const picture_values = Object.values(picture);
// 출력: ['https://...', 'https://...', 'https://...']
for (let value of picture_values) {
console.log(value);
}
Object.entries()
객체의 속성, 값을 쌍으로 하는 배열을 묶은 배열을 반환합니다.
const picture_entries = Object.entries(picture);
// 출력:
// [
// ['large', 'https://...' ],
// ['medium', 'https://...'],
// ['thumbnail', 'https://...']
// ]
for (let [key, value] of picture_entries) {
console.log(key, value);
}
NOTE
배열 객체 메서드를 사용하여 순환하는 것도 가능합니다.
// 속성 순환
Object.keys(picture).forEach(key => console.log(key));
// 값 순환
Object.values(picture).forEach(value => console.log(value));
// 속성, 값 순환
Object.entries(picture).forEach(entry => {
const [key, value] = entry;
console.log(key, value);
});
참고
← Iterantion Generator →