js:for循环只执行最后一个值的问题

在项目开发中,后台返回的数据结构不匹配CheckBox选择需求,导致选择单一项目时出现多选情况。通过重构独一无二的key,使用forEach与map方法,解决了CheckBox的选择问题,确保了选择的准确性。

在项目开发的时候后台的返回的数据结构不能满足于checkBox单个选择的条件,当我选择一个时会把其他的数据也一直选过来,这里就需要自己去重构一个独一无二的key来进行for循环选择:
如以下数据:

  tableDate: [
        { groupNum: "360120", groupName: "仙剑奇侠传" },
        { groupNum: "4542120", groupName: "结界" }
      ],
      timeList: [
        {
          endTime: "67200000",
          groupNum: "510716",
          id: 645,
          nickName: "李逍遥",
          startTime: "63600000"
        },
        {
          endTime: "67200000",
          groupNum: "510716",
          id: 646,
          nickName: "景天",
          startTime: "63600000"
        },
      ],

为了重构出一个独一无二的key,我一开始使用双重for循环:for (let i = 0; i < this.tableDate.length; i++) { for (let j = 0; j < this.timeList.length; j++) { if (j == this.timeList.length - 1) { this.timeList[j].groupTime = this.tableDate[i].groupNum + this.timeList[j].nickName; this.tableDate[i].times = this.timeList; } else { this.timeList[j].groupTime = this.tableDate[i].groupNum + this.timeList[j].nickName; } } }
但是得到的结果却是在这里插入图片描述
在这里插入图片描述
解决办法:

   this.tableDate.forEach(item=>{
          item.times =this.timeList.map(obj=>{
              return{
              groupTime:item.groupNum+'-'+obj.nickName
              }

            })
        })

得到的数据如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值