数组 去重算法 php,JS怎么实现数组去重算法

这次给大家带来JS怎么实现数组去重算法,JS实现数组去重算法的注意事项有哪些,下面就是实战案例,一起来看一下。

测试用例:arr = ["1",3,"1",1,4,5,1,"2",5,1,{"name":"li","age":20},2,4,3,{"name":"li","age":20},""];

方法一:借助于临时数组与indexOf , 算法复杂度为:O(n^2)function unique1(arr){

var temp = [];

for(var i=0; i

if(temp.indexOf(arr[i]) == -1){

temp.push(arr[i]);

}

}

return temp;

}

测试结果:unique1(arr) : ["1", 3, 1, 4, 5, "2", Object { name="li", age=20}, 2, Object { name="li", age=20}, ""]

bug 无法区分对象function unique2(arr){

var temp=[];

var hash={};

for(var i=0; i

if(!hash[arr[i]]){

hash[arr[i]]=true;

temp.push(arr[i]);

}

}

return temp;

}

测试结果:unique2(arr) : ["1", 3, 4, 5, "2", Object { name="li", age=20}, ""]

bug : 无法区分: 1 和 "1"

修改function unique2(arr){

var temp=[];

var hash={};

for(var i=0; i

var item = arr[i];

var key = typeof(item)+item;

if(!hash[key]){

hash[key]=true;

temp.push(arr[i]);

}

}

return temp;

}

测试结果:unique2(arr) : ["1", 3, 1, 4, 5, "2", Object { name="li", age=20}, 2, ""]

方法三:先用sort对数组排序,然后借助临时数组,存储相同元素的最后一个,该方法只能用于纯Number类型数组function unique3(arr){

arr.sort(function(a,b){

return a-b;

});

var temp = [];

for(var i=0;i

if(arr[i] !== arr[i+1]){

temp.push(arr[i]);

}

}

return temp;

}

相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!

推荐阅读:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值