js数组去重(包含ES5,ES6多种方法)

1.ES5常用方法

 let arr =[1,2,2,3,4,4,4,4,7]
 for(let i =0;i<arr.length;i++){
 //对数组进行遍历,用第一个依次和后面的进行比较
    for(let j=i+1;j<arr.length;j++){
    //如果相等就将后面相等的删除,并且删除后下标-1
        if(arr[i]==arr[j]){
            arr.splice(j,1)
            i--
        }
    }
 }
 //此时的arr就是去重后的数组

2.ES6

let arr =[1,2,2,3,4,4,4,4,7]
//利用了ES6的集合元素唯一性
arr= [ ...new Set(arr)];
//此时的arr就是去重后的数组

3.利用其它方法进行数组去重,原理大致一样

let arr =[1,2,2,3,4,4,4,4,7]
//利用过滤器和indexOf返回一个索引相等的元素
arr = arr.filter((item,index)=>{
	//利用了indexOf只会查找到第一个元素符合要求的,然后返回索引,
	//判断查找到的第一个元素是不是当前元素的索引,如果是的话就证明唯一,就返回当前的元素
	//如果不是的话就证明不唯一,就不返回
    return arr.indexOf(item) === index
});
//此时的arr为去重后的数组
//与filter原理类似,但是forEach不返回,因此需要借助中间遍历b 
//来存储去重后的数组,此时b就是去重后的
let arr =[1,2,2,3,4,4,4,4,7]
let b = []
arr.forEach((item,index)=>{
    if(arr.indexOf(item) === index){
        b.push(item)
    }
})
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值