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

如何用Javascript从选中的radio单选按钮生成指定格式的数据集

问题根因

你当前的代码存在两个问题:

  • 你使用map方法遍历数组,返回结果必然是数组格式,和你需要的对象结构不符
  • 没有处理单选项未选中的边界情况,若某组radio没有被选中,document.querySelector会返回null,调用.value会直接抛出异常

修正代码

const names = ["1","2","3"]
// 初始化结果为对象,不是数组
let results = {};

document.querySelector("button").addEventListener("click", function(event){
  // 每次点击先清空之前的结果,避免重复累加
  results = {};
  names.forEach(el => {
    const checkedRadio = document.querySelector(`input[name='${el}']:checked`);
    // 只有选中了才加入结果,符合你示例中只保留已选择题号的需求
    if (checkedRadio) {
      results[el] = checkedRadio.value;
    }
  });
  // 外层包你需要的someName字段
  const finalData = {
    someName: results
  };
  
  console.log(finalData);
});

输出说明

如果第1题选Yes、第2题选No、第3题未选,上述代码输出的finalData结构完全匹配你的需求:

{
  "someName": {
    "1": "1",
    "2": "0"
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 19:54:04