js 獲取對象數組中的交集、差集


廢話不多說,直接上代碼。

主要數據示例如下:

let arr1 = [
            {
                disabled: 0,
                id: 159,
                dictKey: "warehouse_dept_1",
                dictValue: "倉儲一部11"
            },
            {
                disabled: 0,
                id: 160,
                dictKey: "warehouse_dept_2",
                dictValue: "倉儲二部"
            },
            {
                disabled: 0,
                dictValue: "ceshi"
            },
            {
                disabled: 0,
                dictValue: "測試"
            },
            {
                disabled: 0,
                dictValue: "測試11"
            }
        ]
        let  arr2 = [
            {
                disabled: 0,
                id: 159,
                dictKey: "warehouse_dept_1",
                dictValue: "倉儲一部"
            },
            {
                disabled: 0,
                id: 160,
                dictKey: "warehouse_dept_2",
                dictValue: "倉儲二部"
            },
            {
                disabled: 0,
                id: 161,
                dictKey: "warehouse_dept_3",
                dictValue: "倉儲三部"
            }
        ]

具體處理方法:

  let a = arr1.filter(x=>arr2.find(y=>y.id===x.id));//交集
        let b = arr2.filter(x=>!arr1.find(y=>y.id === x.id));//差集
        let c = arr1.filter(x=>!x.id);//無id
        b = b.map(item=>{
            item.disabled = 1
            return item
        });//更改數據
        let e = [...a,...b,...c,];
        console.log(e,b)

獲取e數組的值是組合arr1和arr2 中去重並修改id重復中的屬性值,更改兩個數組差集的屬性值的集合。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM