← flaviocopes.com

How to iterate over object properties in JavaScript

Updated Apr 05 2020

If you have an object, you can’t just iterate it using map(), forEach() or a for..of loop.

You will get errors:

const items = {
  'first': new Date(),
  'second': 2,
  'third': 'test'
}

map() will give you TypeError: items.map is not a function:

items.map(item => {})

forEach() will give you TypeError: items.forEach is not a function:

items.forEach(item => {})

for..of will give you TypeError: items is not iterable:

for (const item of items) {}

So, what can you do to iterate?

for..in is a simpler way:

for (const item in items) {
  console.log(item)
}

You can also call Object.entries() to generate an array with all its enumerable properties, and loop through that, using any of the above methods:

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)
}


Wanna go from noobie to expert?

I wrote an entire book on this topic πŸ‘‡

I also got a super cool course πŸ‘‡

© 2023 Flavio Copes Flavio Copes using Notion to Site Notion to Site. Follow on Twitter

Solopreneur? Wannabe? Adventure awaits