楚河之界 2022-05-29 16:29 采纳率: 100%
浏览 41
已结题

checkbox 数据整合 js

UI是这样的

img


img


Stock 和 Cash 必须选择一个,也可以两个都选
当选择Stock的时候,HongKong和Oversea要显示,同时,HongKong和Overs要至少选择一个,也可以选择两个
当选择Cash的时候,HongKong和Oversea的值要清空,同时隐藏

有两组数据,结构是这样的

Type: {
      data: [
        {label: 'Stock',name: 'isStk', value: false },
        {label: 'Cash',name: 'isCash', value: false },
      ],
    },
Market: {
      data: [
        {label: 'Hong Kong',name: 'isHk', value: false },
        {label: 'Oversea',name: 'isOvs', value: false },
      ],
    },

请问有什么简便的方法,把数据整合成下面这样,发给后台。不管怎么样apiData里都要给这四个值。

apiData = {
  isStk: true,
  isCash: false,
  isHk: true,
  isOvs: true,
}
  • 写回答

2条回答 默认 最新

  • CSDN专家-showbo 2022-05-29 16:40
    关注

    遍历下Type和Market节点组合即可

    img

    
        d = {
            Type: {
                data: [
                    { label: 'Stock', name: 'isStk', value: false },
                    { label: 'Cash', name: 'isCash', value: false },
                ],
            },
            Market: {
                data: [
                    { label: 'Hong Kong', name: 'isHk', value: false },
                    { label: 'Oversea', name: 'isOvs', value: false },
                ],
            },
        }
    
        apiData = {}
    
        d.Type.data.concat(d.Market.data).forEach(item => { apiData[item.name] = item.value; });
    
        alert(JSON.stringify(apiData,null,2))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月6日
  • 已采纳回答 5月29日
  • 创建了问题 5月29日

悬赏问题

  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂