测试用例:
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
unique1(arr) : [1, 3, 1, 4, 5, 2, object { name=li, age=20}, 2, object { name=li, age=20}, ]
bug 无法区分对象
方法二 : 用javascript中的object对象来当作哈希表
function unique2(arr){ var temp=[]; var hash={}; for(var i=0; i
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
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
推荐阅读:
怎样操作angular实现数据请求
如何操作node使用async 控制并发
以上就是如何实现js数组去重算法的详细内容。