ES5、ES6数组去重

ES6

一、利用Set去重

Array.from()方法就是将一个类数组对象或者可遍历对象转换成一个真正的数组。
Set是es6新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。Set本身是一个构造函数,用来生成 Set 数据结构

<script>
        function sole(arr) {
            return Array.from(new Set(arr))
        }
        var arr = [1, 2, 3, 4, 1, 23, 4, 21, 2, 4, 1, 5]
        document.write(sole(arr))
    </script>

ES5

一、利用indexOf去重

indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。

<script>
        function sole(arr) {
            var Array=[]
            for (var i = 0; i < arr.length; i++) {
                if (Array.indexOf(arr[i])===-1) {
                    Array.push(arr[i])
                }
            }
            return Array
        }
        var arr = [1, 2, 3, 4, 1, 23, 4, 21, 2, 4, 1, 5]
        document.write(sole(arr))
    </script>

string.indexOf(searchvalue,start)

参数描述
searchvalue必需。规定需检索的字符串值。
start可选的整数参数。规定在字符串中开始检索的位置。它的合法取值是 0 到 string Object.length - 1。如省略该参数,则将从字符串的首字符开始检索。

二、利用sort去重

sort()方法用于对数组的元素进行排序。排序顺序可以是字母或数字,并按升序或降序。默认排序顺序为按字母升序。

<script>
        function sole(arr) {
        	//如果不想改变数组顺序的话sort括号内不写函数,此方法是按数字从大到小重新排列数组)
            arr = arr.sort(function (a, b) { return a - b })
            var arrry = [arr[0]];
            for (var i = 1; i < arr.length; i++) {
                if (arr[i] !== arr[i - 1]) {
                    arrry.push(arr[i]);
                }
            }
            return arrry;
        }
        var arr = [1, 2, 3, 4, 1, 23, 4, 21, 2, 4, 1, 5]
        document.write(sole(arr))
    </script>

array.sort(sortfunction)

参数描述
sortfunction可选。规定排序顺序。必须是函数。

三、利用splice去重

splice() 方法用于添加或删除数组中的元素。

function sole(arr) {
            for (var i = 0; i < arr.length; i++) {
                for (var j = i + 1; j < arr.length; j++) {
                    if (arr[i] == arr[j]) {  //如果当前等同于下一个,splice方法删除下一个
                        arr.splice(j, 1);
                        j--;
                    }
                }
            }
            return arr;
        }
        var arr = [1, 2, 3, 4, 1, 23, 4, 21, 2, 4, 1, 5]
        document.write(sole(arr))

array.splice(index,howmany,item1,…,itemX)

参数描述
index必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素的下标,必须是数字。
howmany可选。规定应该删除多少元素。必须是数字,但可以是 “0”。如果未规定此参数,则删除从 index 开始到原数组结尾的所有元素。
item1, …, itemX可选。要添加到数组的新元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值