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);
经验分享 程序员 微信小程序 职场和发展