Веб-страница работает нормально, пока я не передаю начальное значение, но в этом случае она просто дает мне TypeError, потому что когда есть только последний элемент (как и ожидалось). Вот почему я пытаюсь передать 0 в качестве начального значения функции уменьшения (строка 4 нижеприведенного фрагмента). Но как только я это сделаю, он просто разбивает всю страницу с кодом ошибки 6.
Чего я пытаюсь достичь: я складываю сумму всех элементов массива, затем помещаю эту сумму в другой массив, удаляю первый элемент и повторяю процесс. Когда не осталось элементов, я хочу вернуть 0 из функции reduce (), поэтому я пытаюсь передать начальное значение (0).
function partsSums(ls) {
let sumArr = [];
while (ls.length >= 0) {
sumArr.push(ls.reduce((acc, cur) => acc + cur, 0));
ls.shift();
}
return sumArr;
}
partsSums([0, 1, 3, 6, 10]);
Результат, который я ищу: [20, 20, 19, 16, 10, 0]
ls.length >= 0
наls.length > 0
. Условие для цикла while никогда не будет оцениваться как ложное, поскольку длина массива никогда не будет меньше 0, поэтому у вас есть бесконечный цикл. - person Jon Warren   schedule 22.10.2020sumArr.push(0)
после цикла while. - person 3limin4t0r   schedule 22.10.2020