Задать вопрос
alaskafx
@alaskafx
Не .do Frontend

Как подсчитать сумму длин всех массивов в объекте?

Если представить, что у меня есть такой объект:

const obj = {
  f: [1,2,3],
  s: [],
  t: [2]
}

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

const values = Object.values(obj);

Дальше есть такие варианты:

const result = values.flat().length;
// или
const result = [].concat(...values).length;
// или
const result = values.reduce((acc, n) => acc + n.length, 0);
// или
const result = eval(values.map(n => n.length).join('+')) ?? 0;

Это если делать коротко. Но можно и подлиннее, зато без создания промежуточного массива:

let result = 0;
for (const k in obj) {
  result += obj.hasOwnProperty(k) && obj[k].length;
}
Ответ написан
Voroba1996
@Voroba1996
JS разработчик
Придумал такой вот вариант с помощью функции for..in
const obj = {
    f: [1,2,3],
    s: [],
    t: [2]
}

let sum = Number()
for (let key in obj) {
    sum += obj[key].length
}
console.log(sum)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы