1. 程式人生 > 其它 >物件陣列根據物件的相同value計算數量

物件陣列根據物件的相同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);