@pcdesign

Как посчитать количество вложенных элементов в объекте со списками?

Вот такая структура:
const books = {
  "1": [["foo", 5], ["bar", 8], ["noo", 9]],
  "2": [["bmk", 7]],
  "7": [["jol", 1], ["lon", 2]]}


Ожидаемый результат: 6

Какой способ современный?
  • Вопрос задан
  • 136 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега JavaScript
Поскольку ключи не важны, то первым делом избавимся от них - получим массив значений:

const values = Object.values(obj);

Дальше возможны варианты:

const count = values.flat().length;
// или
const count = [].concat(...values).length;
// или
const count = values.reduce((acc, n) => acc + n.length, 0);
// или
const count = eval(values.map(n => n.length).join('+')) || 0;
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Или вот так:
const books = {
  "1": [["foo", 5], ["bar", 8], ["noo", 9]],
  "2": [["bmk", 7]],
  "7": [["jol", 1], ["lon", 2]]
}
let count;
for (const key in books) {
  if (typeof books[key] == 'object') {
  	count += books[key].length
    console.log(count)
  }
}
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы