在jQuery集合上运行reduce()

fun*_*dry 2 jquery ecmascript-6

我正在开发一个应用程序,并且我有一个DOM对象集合,我想对它们的合并宽度进行求和。我想为此使用reduce()功能。

包含jQuery集合的变量被调用menuItems,我的尝试如下所示:

menuItems.toArray().reduce((total, item) => total += item.clientWidth);
Run Code Online (Sandbox Code Playgroud)

但是奇怪的是,该函数返回以下输出:

// "http://localhost:3000/97689982"
Run Code Online (Sandbox Code Playgroud)

这等效于字符串中第一个元素外并置在一起的所有宽度。

运行类似的东西会menuItems.toArray()[0].clientWidth正确输出第一项的宽度。

Kun*_*jee 5

您需要先将客户端宽度从字符串解析为数字reducing

const totalClientWidth = menuItems.reduce((acc, cur) => acc + Number(cur.clientWidth), 0);
Run Code Online (Sandbox Code Playgroud)