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;
    }

 

转载于:https://www.cnblogs.com/muyun123/p/11398958.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值