id: 1
isApprove: true,
isOwner: false
},
{
id: 2
isApprove: true,
isOwner: true
},
]
Как мне вывести массив с количеством isApprove и isOwner?
массив с количеством? типа как [isApproveCount, isOwnerCount]?
Да, но нельзя создавать переменную и изменять ее значение
идиотская задача какая-то, ну сделайте фильтром, а потом длину возьмите - всё дважы
количество истинных значений?
let [approveCount, ownerCount] = [0, 0] for (const item of data) { if (item.isApprove) ++approveCount; if (item.isOwner) ++ownerCount; }
и смысл первой строки? оо
короче, редус типа не подходит, но я бы взял его или то, что предлагали выше ну и второе идиотское само по себе, потому что зачем эти два прохода, но ничего не меняется
А почему не подходит reduce? Можно же без мутирования сделать) data.reduce( ([ a = 0, o = 0 ], { isApprove, isOwner }) => [ a + (isApprove ? 1 : 0), o + (isOwner ? 1 : 0) ], [])
пушо есть один хрен временная переменная, вы её полностью перезаписываете, а не частями - ну и шо теперь?)
Это какая? Или по условию аргументы тоже считаются за переменные?
потому 2 фильтра читаются проще
ну внутри-то это одна переменная. да ладно, не вижу вообще смысла на эту тему рассуждать. задача - дерьмо
Ну да, задача странная)
пруфы (v8)
ну справедливости ради стоит отметить что reduce можно сделать рекурсивной функцией без циклов и внутреннего стейта: const reduce = (fn, acc, [head, ...tail]) => head ? reduce(fn, fn(acc, head), tail) : acc
нормальный такой оверкилл для такого задания да ну его нахер эти ваши рекурсии не к месту)
Обсуждают сегодня