zoukankan      html  css  js  c++  java
  • JS实现数组去重及数组内对象去重功能示例

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
    </head>
    <body>
    </body>
    <script>
        //去重
        var newarr = [];
        // var arr = this.msg;
        var arr = [{
            name: 1,
            ccc: 2
        }, {
            name: 2
        }, {
            name: 2
        }, {
            name: 3
        }, {
            name: 3
        }, {
            name: 4
        }, {
            name: 151
        }, {
            name: 1
        }, ];
        //Es6 + ES5去重办法
        function duplicate(arr, type) {
            if (arr.length == 0) {
                return arr;
            } else {
                if (type) {
                    var obj = {}
                        //利用ES6  reduce 累加方法
                    var newArr = arr.reduce((cur, next) => {
          //name是对象键的  名字 保持同步
                        obj[next.name] ? "" : obj[next.name] = true && cur.push(next);
                        return cur;
                    }, [])
                    return newArr;
                } else {
                    return Array.from(new Set(arr));
                }
            }
        }




        //ES5原生去重办法
        function duplicate2(arr, type) {
            var newArr = [];
            var tArr = [];
            if (arr.length == 0) {
                return arr;
            } else {
                if (type) {
                    for (var i = 0; i < arr.length; i++) {
                        if (!tArr[arr[i][type]]) {
                            newArr.push(arr[i]);
                            tArr[arr[i][type]] = true;
                        }
                    }
                    return newArr;
                } else {
                    for (var i = 0; i < arr.length; i++) {
                        if (!tArr[arr[i]]) {
                            newArr.push(arr[i]);
                            tArr[arr[i]] = true;
                        }
                    }
                    return newArr;
                }
            }
        }
        console.log('ES5去重', duplicate2(arr, "name"));



        console.log('ES6去重', duplicate(arr, "name"));
    </script>
    </html>
  • 相关阅读:
    原生js实现 table表格列宽拖拽
    vue.js 利用SocketCluster实现动态添加数据及排序
    angular-websocket.js 使用
    判断当前页面是否是激活状态。
    remove ---会报错discard不会报错
    .pop ----remove 删除
    add添加
    #将相同值输出,取一个值
    集合
    __delattr__\__delitem__
  • 原文地址:https://www.cnblogs.com/shenbo666/p/13667461.html
Copyright © 2011-2022 走看看