Как перебирать свойства объекта в JavaScript

Вот очень распространенная задача: перебор свойств объекта в JavaScript.

Если у вас есть объект, вы не можете просто перебрать его, используяmap(),forEach()илиfor..ofпетля.

Вы получите ошибки:

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

map()даст тебеTypeError: items.map is not a function:

items.map(item => {})

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

Скачать мою бесплатнуюРуководство для начинающих по JavaScript


Больше руководств по js: