js 实现对象数组中根据属性值去重(相同属性值只保留一个)

对象数组 arr, 根据id属性去重,相同的id值只保留一个

    var arr = [
        {name: 'a', id: 1},
        {name: 'a', id: 2},
        {name: 'b', id: 2},
        {name: 'c', id: 4},
        {name: 'c', id: 6},
        {name: 'b', id: 6},
        {name: 'd', id: 7}];

    function deWeight(arr) {
        for (var i = 0; i < arr.length - 1; i++) {
            for (var j = i + 1; j < arr.length; j++) {
                if (arr[i].id == arr[j].id) {
                    arr.splice(j, 1);
                    //因为数组长度减小1,所以直接 j++ 会漏掉一个元素,所以要 j--
                    j--;
                }
            }
        }
        return arr;
    }

    // 调用
    var data = deWeight(arr);
    console.log(data);

js 实现数组去重的方法(indexOf() 方法使用): https://blog.csdn.net/qq_40015157/article/details/110795045 

猜你喜欢

转载自blog.csdn.net/qq_40015157/article/details/113601966