Object를 Loop하기 위해서 ES6전 버전에서는 for...in을 사용했다. 하지만 단점이 hasOwnProperty를 사용해서 실제로 property가 object에 포함되어있는지 확인을했어야했다.
for (var property in object) {
if (object.hasOwnProperty(property)) {
// Do things here
}
}
Object를 Loop하기 더 좋은 방법은 먼저 Array로 변형 후 Loop하는 것이다.
const fruits = {
apple: 28,
orange: 17,
pear: 54,
}
const keys = Object.keys(fruits)
console.log(keys) // [apple, orange, pear]
const fruits = {
apple: 28,
orange: 17,
pear: 54,
}
const values = Object.values(fruits)
console.log(values) // [28, 17, 54]
const fruits = {
apple: 28,
orange: 17,
pear: 54,
}
const entries = Object.entries(fruits)
console.log(entries)
// [
// [apple, 28],
// [orange, 17],
// [pear, 54]
// ]
const keys = Object.keys(fruits)
for (const key of keys) {
console.log(key)
}
// Results:
// apple
// orange
// pear
for (const [fruit, count] of entries) {
console.log(There are ${count} ${fruit}s
)
}
// Result
// There are 28 apples
// There are 17 oranges
// There are 54 pears