добавление элементов длины объекта

1

У меня есть объект с некоторыми элементами массива, теперь я должен рассчитать длину всех элементов. У меня возникла идея рассчитать эти элементы, я объявил переменную count = 0, затем вычислил эти элементы length & added with count.

var obj = {
  item_1: ['item1', 'item2', 'item3', 'item4'],
  item_2: ['item1', 'item2', 'item3', 'item4', 'item5'],
  item_3: ['item1', 'item2', 'item3']
}

var count = 0;

Object.entries(obj).map(item => {
  count += item[1].length
})

console.log(count)

Мой вопрос: как я могу получить этот результат без объявления переменной calculate? Например: console.log(Object.entries(Obj)....?)

  • 0
    Что такое calculate переменная? Вы имеете в виду count ?
Теги:
object
arrays

2 ответа

9
Лучший ответ

Вы ищете сокращение:

  Object.values(obj).reduce((sum, subarr) => sum + subarr.length, 0)

Это один из редких хороших условий для него, есть много других случаев, которые уменьшают, на самом деле усложняет код, поэтому лучше использовать глобальные переменные.

  • 0
    subarr.length вернет длину ключа, она должна быть subarr[1].length
  • 1
    @DelowarHosain Я думаю, что вы Object.entries() с Object.values()
Показать ещё 1 комментарий
0

ты можешь сделать

[].concat.apply([], Object.values(obj)).length

или с использованием ES6

[].concat(...Object.values(obj)).length

Я просто добавляю еще один шаг для объединения/сглаживания массива массивов в JavaScript?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню