如何数组去重,数组去重的多种方法

下面是我整理的5种数组去重的方法,欢迎大家追加,以及评价哦!

1.第一种方法  es6 的新方法  new Set()  

新增的数据结构,似于数组,但它的一大特性就是所有元素都是唯一的,没有重复的值,我们一般称为集合。

 const arr1 = [1, 1, 2, 3, 4, 5, 2, 3, 4]
        function quChong(data) {
            const newArr = [...new Set(data)]
            return newArr
        }
        const newArr = quChong(arr1)
        console.log(newArr);//[1,2,3,4,5]

2.第二种方法  利用filter()过滤掉重复的元素 返回新的数组里面的就没有重复的元素  

重点判断: 数组名.indexOf(数组元素)  如果数组里面没有该元素的话,返回的值就是-1,有该元素的话返回的是该元素的索引号

 const arr2 = [1, 1, 2, 3, 4, 5, 2, 3, 4]
        const res = arr2.filter((item, index) => {
            // 判断当元素返回的是该元素的索引号时就返回
            return arr2.indexOf(item) === index
        })
        console.log(res);//[1,2,3,4,5]

3.第三种方法  利用for 循环 搭配 indexOf 去重

   重点思路:声明一个新数组,判断新数组里面是否有对应的值,没有的话就添加

  const arr3 = [1, 1, 2, 3, 4, 5, 2, 3, 4]
        const newArr3 = []
        for (let i = 0; i < arr3.length; i++) {
            if (newArr3.indexOf(arr3[i]) === -1) {
                newArr3.push(arr3[i])
            }
        }
        console.log(newArr3);//[1,2,3,4,5]

 4.第四种方法  利用includes实现数组去重

重点思路:声明一个新数组,遍历数组,然后做一个判断,当新数组里面的值不包含旧数组里面的值的话,就把新数组里面的值添加到旧数组

  const arr4 = [1, 1, 2, 3, 4, 5, 2, 3, 4]
        const newArr4 = []
        for (let i = 0; i < arr4.length; i++) {
            if (!newArr4.includes(arr4[i])) {
                newArr4.push(arr4[i])
            }
        }
        console.log(newArr4);//[1,2,3,4,5]

5.第五种方法  双重for循环

 注意:第二层会引起数组塌陷的情况,需要进行j--

 const res1 = [1, 2, 2, 3, 1, 5, 2]
        for (let i = 0; i < res1.length; i++) {
            for (let j = i + 1; j < res1.length; j++) {
                if (res1[i] === res1[j]) {
                    res1.splice(j, 1)
                    j--
                }

            }
        }
        console.log(res1)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值