You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

reduce方法不适用于jQuery选择器返回对象?如何统计const变量中勾选的复选框数量

问题解答

关于reduce是否可作用于jQuery选择器返回结果

jQuery选择器返回的是类数组的jQuery实例对象,并非原生JavaScript数组,原型链上没有部署Array的reduce方法,所以直接调用会报错。
同时你原有代码还存在运算符优先级错误:===优先级高于+,原有写法会先计算true + currentTotal,再和$(item).prop('checked')做全等判断,完全不符合计数逻辑。

可行实现方案

方案1:转原生数组后使用reduce

先将jQuery对象转成原生数组,再调用reduce方法,修正后代码如下:

const blocksUserAddLineCBs = $(".useradd"+blockIdEnding);
const blocksUserAddLinesActiveCBCounter = [...blocksUserAddLineCBs].reduce((currentTotal, item) => {
    return currentTotal + $(item).prop('checked')
}, 0);

也可以用Array.from(blocksUserAddLineCBs)替代扩展运算符完成转换。

方案2:直接使用jQuery的:checked选择器(更简洁)

不需要手动遍历计数,直接通过选择器筛选已勾选的元素,取返回结果的length属性即可:

const blocksUserAddLinesActiveCBCounter = $(`.useradd${blockIdEnding}:checked`).length;

内容的提问来源于stack exchange,提问作者lxg95

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 02:45:04