Запуск reduce() в коллекции jQuery

#jquery #ecmascript-6

#jquery #ecmascript-6

Вопрос:

Я работаю над приложением, и у меня есть коллекция объектов DOM, в которой я хочу суммировать их общую ширину. Я хотел использовать reduce() функцию для этого.

Вызывается переменная, содержащая коллекцию jQuery menuItems , и моя попытка выглядит следующим образом:

 menuItems.toArray().reduce((total, item) => total  = item.clientWidth);
  

Но, как ни странно, эта функция возвращает этот вывод:

 // "http://localhost:3000/97689982"
  

Что эквивалентно всем ширинам, объединенным вместе в строку, исключая первый элемент.

Запуск чего-то вроде menuItems.toArray()[0].clientWidth корректно выводит ширину первого элемента.

Комментарии:

1. Какие входные данные внутри menuItems ? можете ли вы опубликовать это и здесь?

Ответ №1:

Перед reducing этим вам нужно проанализировать ширину клиента от строки до числа.

 const totalClientWidth = menuItems.reduce((acc, cur) => acc   Number(cur.clientWidth), 0);