这里有一个很常见的任务:迭代一个对象的属性,在JavaScript中
发表于2019年11月02日,最后更新于2020年4月5日
如果你有一个对象,你不能只用map() ,forEach() 或for..of 循环来迭代它。
你会得到错误。
const items = {
'first': new Date(),
'second': 2,
'third': 'test'
}
map() will give you :TypeError: items.map is not a function
forEach() 会给你 。TypeError: items.forEach is not a function
items.forEach(item => {})
for..of 将会给你 。TypeError: items is not iterable
for (const item of items) {}
那么,你能做什么来迭代呢?
for..in 是一个更简单的方法。
for (const item in items) {
console.log(item)
}
你也可以调用 **Object.entries()**来生成一个包含所有可枚举属性的数组,然后使用上述任何一种方法循环浏览。
Object.entries(items).map(item => {
console.log(item)
})
Object.entries(items).forEach(item => {
console.log(item)
})
for (const item of Object.entries(items)) {
console.log(item)
}