您的位置:首页 > 其它

去掉数组中重复的元素

2017-09-04 00:00 225 查看
function unique1(arr){
//i从0开始遍历arr,同时创建空数组result
for(var i=0,result=[];i<arr.length;i++){
//j从0开始,遍历result
for(var j=0;j<result.length;j++){
//如果result中当前元素等于arr中当前元素
if(arr[i]==result[j]) break;//退出循环
}//(遍历结束)
//如果j等于result的length
if(j==result.length)
//将arr中当前元素,追加到result末尾
result[result.length]=arr[i];
}//(遍历结束)
return result;
}

function unique2(arr){
for(var i=0,result=[],hash=[];i<arr.length;i++){
//如果hash中以arr当前元素作为key的元素是undefined
if(hash[arr[i]]===undefined){
//将arr当前元素追加到result结尾
result[result.length]=arr[i];
//为hash添加新元素,key为arr当前元素值,value都赋值为true
hash[arr[i]]=true;
}
}
return result;
}

for(var i=0,arr=[];i<1000000;i++){
arr[i]=Math.floor(Math.random()*1000);
}
console.time("unique1");
unique1(arr);
console.timeEnd("unique1");
console.time("unique2");
unique2(arr);
console.timeEnd("unique2");

对两种查找方式进行比较,第二种用时更少
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数组 重复 去掉 过滤