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>
  • 相关阅读:
    ASP.NET从字符串中查找字符出现次数的方法
    2009最新Godaddy域名Push教程(GODADDY域名转移会员号)
    jQueryJSON 无刷新三级联动
    select scope_identity()
    BugTracker.NET安装指南
    这道面试必问的JVM面试题70%的Java程序员会做错
    想要金九银十面试通关,不懂 Java多线程肯定是不行的!
    一线互联网公司Redis使用精髓,你必须要掌握这4点!
    5种JVM垃圾收集器特点和8种JVM内存溢出原因
    一次性集中处理大量数据的定时任务,如何缩短执行时间?
  • 原文地址:https://www.cnblogs.com/shenbo666/p/13667461.html
Copyright © 2011-2022 走看看