将数组里面相同的值的数值进行合并和相加。

一个数组里面有相同的id和warehouseId和warehouseLocationId时就将数据进行合并,并且相加里面的accessQuantity1的值;

const data = [
    {
        "warehouseId": "1523562362156769283",
        "id": "1630490909423165441",
        "warehouseLocationId": "1629083671183384577",
        "accessQuantity1": 1
    },
    {
        "id": "1630490909423165441",
        "warehouseId": "1523562362156769283",
        "warehouseLocationId": "1629083671183384577",
        "accessQuantity1": 1
    }
]
const filterData = data.filter((item, index) => {
    // warehouseLocationId  && id && warehouseId
    const _index = data.findIndex(e => {
        return e.warehouseLocationId === item.warehouseLocationId && item.id === e.id && e.warehouseId === item.warehouseId
    })
    
    return index === _index
})

filterData.forEach((e => {
   const sameData = data.filter(e2 => {
        return e.warehouseLocationId === e2.warehouseLocationId && e2.id === e.id && e.warehouseId === e2.warehouseId
    })
    e.accessQuantity1 = sameData.reduce((cur, pre) => {
    return pre.accessQuantity1 + cur
}, 0)
}))

console.log(filterData);

你可能感兴趣的:(前端,javascript,vue.js)