从一道联通面试题引发的思考(数组去重)

题目:写一个函数,剔除数组中的重复元素(如:[1, 5, 4, 8, 5, 15, 5,7,0]去重后变成[1, 5, 4, 8, 5, 15, 7,0](20分)

1.

var obj = {}, array = [1, 5, 4, 8, 5, 15, 5,7,0], rst=[],v;
for (var i in array) {v = array[i],!obj[v]&&(obj[v]=v,rst.push(v));}

 

2.

(function(v){
var obj={};
return v.filter(v=>!obj[v]&&(obj[v]=1)) ;
})([1, 5, 4, 8, 5, 15, 5,7,0])

 

3.

(function(v){
return v.filter(a=>!v[a+"@zzs"]&&(v[a+"@zzs"]=1)) ;
})([1, 5, 4, 8, 5, 15, 5,7,0])

 4.

(function(v){
return v.filter(a=> v[a+"@zzs"]=isNaN(v[a+"@zzs"]++)) ;
})([1, 5, 4, 8, 5, 15, 5,7,0])

posted @ 2019-06-25 15:43  lkmgydx  阅读(78)  评论(0)    收藏  举报
by HYL@2016年6月16日 14:51:38