对象数组根据对象的相同value计算数量

 let s = [ {
      "warning_level": "III级黄色预警",
      "warning_type": "大风预警",
      "arrive_time": "2022-03-29T00:00:00.000+0800"
    },
      {
        "warning_level": "III级黄色预警",
        "warning_type": "雷暴预警",
        "arrive_time": "2022-03-29T00:00:00.000+0800"
      },
      {
        "warning_level": "III级黄色预警",
        "warning_type": "雷电预警",
        "arrive_time": "2022-04-19T00:02:00.000+0800"
      },
      {
        "warning_level": "III级黄色预警",
        "warning_type": "雷电预警",
        "arrive_time": "2022-05-17T00:01:00.000+0800"
      }];
    let r = s.reduce((preVal,curVal)=> {
      let flag = false;
      preVal = preVal.map(cur=> {
        if (cur.name == curVal.warning_type) {
          cur.value++;
          flag = true;
        }
        return cur;
      });
      if (!flag) {
        preVal.push({name:curVal.warning_type,value:0});
      }
      return preVal
    },[]);
    console.log(r);

  

posted @ 2022-05-18 14:36  bruce_lee_1  阅读(30)  评论(0)    收藏  举报