数组对象的处理

55 阅读1分钟

1、获取两数组的id集合

oldList.forEach(item => {
    oIds.push(item.sourceOrderId)
})
res.forEach(item => {
    nIds.push(item.sourceOrderId)
})

2、对比两个id数组,找不同

for (let i = 0; i < oIds.length; i++) {
    const item = oIds[i];
    if (!nIds.includes(item)) {
        removeId.push(item);
    }
}
for (let i = 0; i < nIds.length; i++) {
    const item = nIds[i];
    if (!oIds.includes(item)) {
        addId.push(item);
    }
}

3、先移除再新增

removeId.forEach(removeIdItem => {
    orderList = oldList.filter(item => {
        return !item.sourceOrderId.includes(removeIdItem)
    })
})

addId.forEach(addIdItem => {
    addList = res.filter(item => {
        return item.sourceOrderId.includes(addIdItem)
    })
})
orderList =  orderList.concat(addList)

4、封装成函数