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

如何使用JavaScript将数组元素按类别分组为指定对象格式

分类复选框值分组功能实现方案

修改后完整代码

function category_array() {
    // 定义分组名映射,匹配期望的输出key、修正输入笔误
    const groupNameMap = {
        men: 'men',
        mem: 'men',
        woman: 'women'
    };
    // 用对象存储分组结果
    const groupedResult = {};
    const checkedBoxes = $('input[name="category[]"]:checked');

    for (let i = 0; i < checkedBoxes.length; i++) {
        if (checkedBoxes[i].checked) {
            // 按下划线拆分值为分组标识和子项值
            const [groupFlag, subValue] = checkedBoxes[i].value.split('_');
            // 匹配得到最终分组名
            const groupName = groupNameMap[groupFlag] || groupFlag;
            // 分组不存在则初始化空数组
            if (!groupedResult[groupName]) {
                groupedResult[groupName] = [];
            }
            // 子项存入对应分组
            groupedResult[groupName].push(subValue);
        }
    }

    console.log(groupedResult);
    // input元素只能存字符串,因此转为JSON字符串存储,使用时用JSON.parse解析即可
    $("#category_list").val(JSON.stringify(groupedResult));
}

效果说明

输入值为['men_a', 'men_b', 'mem_c', 'woman_a', 'woman_d']时,输出结果完全匹配你期望的格式:

{men: ['a','b','c'], women: ['a','d']}

如果不需要修正笔误或者修改分组名,直接删除groupNameMap相关逻辑即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 22:15:04