javascript 数组去重常用方法汇总

mark一些我常用的数组去重的方法

1、set方法

const arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]

function reset (arr) {
	return Array.from(new Set(arr))
}

let Arr = reset(arr)
console.log(Arr) //  [1, 2, 3, 4]

Set类似于数组,区别在于它所有的成员都是唯一的,不能有重复的值

2、for循环遍历

const arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]

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

两层for循环 比较arr[i]到 arr[i+1~arr.length] 相同即splice(i+1, 1)去重

3、利用IndexOf去重

const arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]
let Arr = []
for(let i = 0; i<arr.length;i++){
	if (Arr.indexOf(arr[i]) === -1) {
		Arr.push(arr[i])
	}
}

indexOf()方法如果找不到就会返回-1

4、sort()排序去重

let arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]
arr = arr.sort()
let Arr = []
for(let i = 0; i<arr.length; i++) {
	if (arr[i] !== arr[i+1]) {
		Arr.push(arr[i])
	}
}

先使用sort方法排序好数组。然后比较数组的前后两项是否相同

5、利用includes方法

const arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]
let Arr = []
for(let i = 0; i<arr.length;i++){
	if (!Arr.includes(arr[i])) {
		Arr.push(arr[i])
	}
}

同indexOf方法。includes方法用户检测数组是否存在传入的值,存在返回true

6、利用filter方法

const arr = [1,2,3,1,1,2,3,4,2,1,2,3,4,4,2,2,1,2,3,4]
let Arr = arr.filter((item, i, self) => self.indexOf(item, 0) === i)

filter是es6的过滤数组的方法,使用filter结合indexOf方法能比较有效的去重

还有其他很多种数组去重方式就不一一列举了,总之灵活善用方法总会有最优去重法;
一些方法参考了这位大佬的总结,更多请看这位大佬的文章 ==>地址

…end

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值