js 数组去重方法

本文介绍了六种JavaScript数组去重的方法,包括ES6 Set、splice、indexOf、sort、includes和filter结合reduce与includes的使用,详细展示了每种方法的实现代码和应用场景,帮助开发者更好地理解和掌握JavaScript中数组去重的技巧。
摘要由CSDN通过智能技术生成
// es6 set去重方法1
    function unique ( arr ) {
     return Array.form(new Set(arr))
    }
    var arr = ['1','2','2']
    console.info(unique(arr))
    // splice去重 方法2
    function unique (arr) {
        for (let i = 0; i < arr.length; i++) {
            for (let j=i+1;  j< arr.length; j++) {
                if (arr[i] == arr[j]) {
                    arr.splice(j,1)
                    j--
                }
            }
        }
        return arr
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))
    // indexOf去重 方法3
    function unique (arr) {
        if (!Array.isArray(arr)) {
            console.info('type error')
            return
        }
        var newArr = []
        for (let i = 0; i < arr.length; i++) {
            if (newArr.indexOf(arr[i]) === '-1') {
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))
    // sort 去重 方法4
    function unique (arr) {
        if (!Array.isArray(arr)) {
            console.info('type error')
            return
        }
        arr = arr.sort()
        var newArr = arr[0]
        for (let i = 0; i < arr.length; i++) {
            if (arr[i] != arr[i-1]) {
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))
    //  includes 去重 方法5
    function unique (arr) {
        if (!Array.isArray(arr)) {
            console.info('type error')
            return
        }
        var newArr = []
        for (let i = 0; i < arr.length; i++) {
            if (!newArr.includes(arr[i])) { // 检测数组是否有某个值
                newArr.push(arr[i])
            }
        }
        return newArr
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))
    //  filter 去重 方法7
    function unique (arr) {
        return arr.filter(function(item,index,arr){
            return arr.indexOf(item, 0) === index
        })
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))
    //  reduce+includes 去重 方法8
    function unique (arr) {
        return arr.reduce((prev,cur) => prev.includes(cur) ? prev :[...prev,cur],[])
    }
    var arr = [1,1,2,2,null, undefined,undefined]
    console.info(unique(arr))

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值