#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);