JS 本人常用数组对象去重

190 阅读1分钟
data(){
        return {
        <!--模拟数据-->
            ArrayObject:[
                {
                    id:1,
                    name:'小1'
                },
                {
                    id:2,
                    name:'小2'
                },
                {
                    id:3,
                    name:'小3'
                },
                {
                    id:4,
                    name:'小4'
                },
                {
                    id:5,
                    name:'小5'
                },
                 {
                    id:5,
                    name:'小5'
                },
                 {
                    id:5,
                    name:'小5'
                },
                 {
                    id:5,
                    name:'小5'
                },
                 {
                    id:5,
                    name:'小5'
                },
            ]
        }
    },
ArrayObjectDuplicateRemoval( arr ){
            let newArray = []
            let obj = {}
            for( let i = 0; i < arr.length; i++ ){
            //判断当前数组是否含有当前项,如果没有就为false同时!取反再执行下面代码,如果有就为true同时!取反但不执行以下代码
                if( !obj[arr[i].id] ){ 
                    newArray.push(arr[i])
                    obj[arr[i].id] = true //赋值为true是因为数组中已经存在当前项,所以再次判断时应该为true同时取反!为false,然后跳过当前判断
                }
            }
            return newArray
        }
this.ArrayObjectDuplicateRemoval( this.ArrayObject )
效果 [ { "id": 1, "name": "小1" }, { "id": 2, "name": "小2" }, { "id": 3, "name": "小3" }, { "id": 4, "name": "小4" }, { "id": 5, "name": "小5" } ]