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>
  • 相关阅读:
    定时任务,执行时间动态配置方式
    MultipartFile+nio上传文件
    org.springframework.web.HttpMediaTypeNotSupportedException: Content type 'multipart/form-data;boundary=----WebKitFormBoundaryRAYPKeHKTYSNdzc1;charset=UTF-8' not supported
    JDBC 连Sql Server 接数据库--The TCP/IP connection to the host localhost, port 1433 has failed
    swagger2常用注解说明
    java zxing实现二维码生成和解析zxing实现二维码生成和解析
    【springboot+easypoi】一行代码搞定excel导入导出
    linux中set、unset、export、env、declare,readonly的区别以及用法
    Spring---七大核心模块
    【Tomcat】Tomcat容器 web.xml详解
  • 原文地址:https://www.cnblogs.com/shenbo666/p/13667461.html
Copyright © 2011-2022 走看看