мне кажется надо использовать один reduce в другом
не надо, достаточно одного
function whoseBicycle(...diaries) {
const [ [ son ] ] = [ 'first', 'second', 'third' ]
.map((n, i) => [
n,
Object.values(diaries[i]).reduce((acc, m) => acc + m, 0),
ageTable[`${n}SonAge`],
])
.sort((a, b) => (b[1] - a[1]) || (a[2] - b[2]));
return `I need to buy a bicycle for my ${son} son.`;
}
arrReduce = arrMap.reduce( function ( acc, subArr ) {
subArr.reduce( function ( total, elem ) {
total = total + elem
console.log(total)
}, 0)
}, [])
Просто блестяще, я считаю.
Вы не знаете, что делает метод reduce.
Вы не знаете, что из функций можно, а иногда и нужно возвращать значения.
Вы не знаете, каким будет результат выполнения функции, если ничего не вернуть.
Вы не знаете, что происходит при попытке сложить значения разных типов.
Ну, вы хотя бы знаете (теперь), что вам стоит погуглить.
когда выводишь в консоль total - отображается NaN, откуда он берется?
Ничего не вернули из коллбека reduce'а => на следующей итерации total принял значение undefined.
Сложение undefined и числа даёт NaN.
Всё.
Айнур Ярулин, раз так, вам придётся своему "стилю" изменить. Причём не только в будущем, но и в прошлом - пройтись по своим комментариям и убрать уже оставленный мусор.
Айнур Ярулин, здесь я вам отвечать не буду. Буду ли отвечать где-то ещё - зависит от вас. Что вам надо сделать, чтобы получить от меня ответ:
Пример данных в тексте вопроса - исправьте его, чтобы он стал синтаксически корректным. И попытайтесь осознать (знаю, что мозгов тут вам может и не хватить, так что да - просто попытайтесь) неприемлемость публикации синтаксически некорректного мусора в тех случаях, когда исправление этой некорректности не является сутью вопроса.
Первый комментарий под ответом - удалите его. Ну и аналогично примеру данных - пытаетесь осознать неприемлемость подобных комментариев, но уже без всяких исключений.
Andy Koshman, вам следует оформить новый вопрос, где будет подробно рассказано, чего вы хотите сделать, как вы пытались это сделать, и чем вас не устроил полученный результат.
Алескей Дворяшин, вы-первых, то, что вы сейчас спросили, имеет весьма отдалённое отношение к исходному вопросу. И уже поэтому тут я вам отвечать не буду.
Во-вторых, что вы сейчас сказали на самом деле:
- Мне опять лень заглядывать в документацию, сделайте за меня это ещё раз.
Max89, в каких случаях не надо блокировать option? Если он нигде не выбран или выбран в текущем select'е. Так что смотрим индекс значения option'а в массиве выбранных значений и проверяем, что он равен -1 (т.е. отсутствует, т.е. не выбран) или индексу текущего select'а. Ну и инвертируем результат проверки.
То же самое, но иначе - значение текущего option'а присутствует среди выбранных и при этом не равно выбранному значению текущего select'а:
:disabled="selected.includes(val) && n !== val"
Или, ещё вариант, проверяем, есть ли среди выбранных значений такое, которое совпадает со значением текущего option'а, но при этом не совпадает со значением текущего select'а:
:disabled="selected.some(m => m === val && m !== n)"
Просто блестяще, я считаю.
Вы не знаете, что делает метод reduce.
Вы не знаете, что из функций можно, а иногда и нужно возвращать значения.
Вы не знаете, каким будет результат выполнения функции, если ничего не вернуть.
Вы не знаете, что происходит при попытке сложить значения разных типов.
Ну, вы хотя бы знаете (теперь), что вам стоит погуглить.
Ничего не вернули из коллбека reduce'а => на следующей итерации total принял значение undefined.
Сложение undefined и числа даёт NaN.
Всё.