@Asalender

Как исправить ошибку «reduce не функция»?

У меня такой код:

function itogC(form) {
                    // здесь я передаю все инпуты из форма в которой хранятся десятичные числа( к примеру 1,5 и т.д.) ничего особенного 
    const itog1 = form.querySelectorAll(`.c1, .c2, .c3, .c4, .c5, .c6`);

                  // этот массив мне нужен для вычислений через reduce
    const km = [1, 0.25, 0.5, 0.75, 1, 0.25];
    console.log(itog1);
 
       const res =  itog1.reduce(
        (a,v,i) =>{
            if(!a[v]){
                a[v] = 0;
            }

            a[v] = a[v] + km[i];
            return a;
        },
    {}
        );

};

Выдает ошибку "Uncaught TypeError: itog1.reduce is not a function".
  • Вопрос задан
  • 83 просмотра
Решения вопроса 2
XanXanXan
@XanXanXan
querySelectorAll возвращает nodeList, у которого нет метода reduce()

Нужно преобразовать в массив через [... ] или Array.from()
Ответ написан
mmmaaak
@mmmaaak
querySelectorAll() возвращает тип NodeList, который не является массивом, и не имеет метода reduce
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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