• js-数组去重的方法


    在js中我们想对数组中对于数字重复的值进行操作只显示一个,就分享几个方法

    1、数组的indexOf()方法

    <script>
        (function () {
            var box = document.getElementById('box');
            var arr = [1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7];
            norepeat(arr);
    
            function norepeat(arr) {
                var arr1 = [];//声明一个空数组来存放去重之后的数组
                arr1 = arr.filter(function (item) {
                    if (arr1.indexOf(item) == -1) {
                        return arr1.push(item);
                    }
                })
                console.log(arr1);
            }
        })();
    </script>

    2、用数组includes()方法(比indexOf()方便)

    function norepeat2(arr) {
            //arr是要去重的数组
            var newarr = [];//准备用来存放去重之后的数据
            arr.forEach(function (item) {
                if (!newarr.includes(item)) {//1 2 1 2 3 4
                    //不包含
                    newarr.push(item);//1 2 3 4
                }
            });
            return newarr;
        }

    3、利用对象

        声明一个空对象来,遍历数组判断对象是否有当前值,有就跳过,无就执行判断语句将值作为属性名存入对象

    function norepeat3(arr) {
            var obj = {
                // 1 : true,
                // 2 : true,
                // 3 : true,
                // 4 : true
            };//开关
            arr.forEach(function (item) {//
                if (!obj[item]) {//obj.1 obj.2 obj.1 obj.2 obj.3
                    obj[item] = true;//对象的赋值  item就是作为键名;true作为键值
                }
            });
            var newarr = [];
            for (var key in obj) {
                //遍历对象
                newarr.push(key * 1);
            }
            console.log(obj);
            return newarr;
        }
  • 相关阅读:
    MQTT-SN协议乱翻之实现要点
    MQTT-SN协议乱翻之功能描述
    NUnit单元测试
    NHibernate多对多关联映射的实现
    Windows Phone 8 开发初体验
    ASP.NET MVC概述
    Entity Framework多对多关联映射的实现
    C#通过ODAC访问Oracle12c
    64位Win8系统下安装Oracle12c
    C# 异步下载文件
  • 原文地址:https://www.cnblogs.com/muyun123/p/11398958.html
Copyright © 2020-2023  润新知