JS将两个数组合并成一个对象数组

将两个数组合并成一个对象数组

   let options = [];
   let times = [30, 60, 120, 300, 420, 540, 720, 900, 1200];
   let timesDesc = ["30分钟", "1小时", "2小时", "5小时", "7小时", "9小时", "12小时", "15小时", "20小时"];
   options=[
            {
              time: 30,
              timeDesc: "30分钟"
            },
            {
              time: 60,
              timeDesc: "1小时"
            },
            {
              time: 120,
              timeDesc: "2小时"
            },
          ]
     //第一种方案:
      const f1 = (key, arr) => arr.map(item => ({
         [key]: item
       }))
       const getMaxArr = (times, timesDesc) => (times.length >= timesDesc.length) ? times : timesDesc;
       const mergeArr = (oldArr, arr) => oldArr.map((item, index) => ({
         item,
         ...arr[index]
       }))

       let list1 = f1('times', times)
       let list2 = f1('timesDesc', timesDesc)
       let options = mergeArr(getMaxArr(times, timesDesc), list2)
       console.log(options);
      //第二种方案:
      let size=times.length;
        for(let i=0;i<size;i++){
          let a={};
          a.time=times[i];
          a.timeDesc=timesDesc[i];
          options.push(a);
        }
        console.log(options);
  • 8
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值