json数组去重,属性值累加

2021-01-04  本文已影响0人  Yong_bcf4
function uniq1(arr) {
      const array = [];
      for (let i = 0; i < arr.length; i++) {
        let isChage = true;
        for (let z = 0; z < array.length; z++) {
          if (arr[i].name === array[z].name) {
            isChage = false;
          }
        }
       
        if (isChage) {
          array.push(arr[i]);
        }
      }
      return array;
    }
    const arr = [{name:1,a:2, c:3, total:4},{name:1, a:4,c:3,total:5}]
    console.log(uniq1(arr))

属性值累加

function uniq2(arr){
      const newData = []
      arr.forEach(el=>{
        const result = newData.findIndex(ol=>{return el.name === ol.name})
        if(result!== -1){
          newData[result].data = Number(newData[result].data) + Number(el.data)
        }else{
          el.data = Number(el.data)
          newData.uniq2(el)
        } 
      })
      return newData
    }
    console.log(uniq2([{name:1,a:2, c:3, data:4},{name:1, a:4,c:3,data:5},{name:2, a:4,c:3,data:5}]))
上一篇 下一篇

猜你喜欢

热点阅读