javascript数组去重的几种常见方法,js 数组去重的四种方法
本教程运行环境:windows7系统,javascript1.8.5版本1.8.5,戴尔G3电脑。
方法1:[…new Set(arr)]
const arr=[1,2,3,2,3];
[.新集(arr)];//[1, 2, 3]方法2:Array.from(new Set(arr))
const arr=[1,2,3,2,3];
array . from(new Set(arr));//[1,2,3]由于集合中的元素是唯一的,无论它们是原始值还是对象引用,重复数据删除都可以通过将数组转换为集合对象来实现。
Array.from方法可以将Set对象转换为数组。
方法3:利用filter+ indexOf
唯一函数(arr) {
return arr.filter(function(item,index,arr) {
//当前元素,原数组中第一个索引==当前索引值,否则返回当前元素。
return arr.indexOf(item,0)===index;
});
}
var arr=[1,1,真,真,真,真,15,15,假,假,未定义,未定义,null,null,NaN,NaN, NaN ,0,0, a ,{},{ }];
console.log(唯一(arr))
//[1,真,真,15,假,未定义,空,南,0, a ,{…},{…}]方法4:双重 for 循环
最简单的理解,外循环遍历元素,内循环检查是否重复。
当有重复值时,可以使用push()或splice()。
函数distinct(a,b) {
设arr=a . concat(b);
for(设i=0,len=arr.lengthileni ) {
for(设j=I ^ 1;jlenj ) {
if (arr[i]==arr[j]) {
arr.splice(j,1);
//splice会改变数组长度,所以把数组长度len和下标j减一。
len-;
j-;
}
}
}
返回arr
}但这种方式占用内存多,效率最低。
方法5:for...of + includes()
双for循环的升级版,外层用for代替for循环.语句,内循环改为includes()
首先创建一个空数组,当includes()返回false时,将元素推入空数组。
同样,也可以使用indexOf()代替includes()
函数distinct(a,b) {
设arr=a.concat(b)
假设结果=[]
对于(让我逮捕){
!结果包含(I)结果推送(I)
}
回送结果
}
【推荐学习:javascript高级教程】以上是如何做javascript数组去重的详细内容。更多请关注我们的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。