废话不多说了,具体方法如下所示:
方法一:返回新数组每个位子类型没变
rush:js;">
function outRepeat(a){
var hash=[],arr=[];
for (var i = 0; i < a.length; i++) {
hash[a[i]]!=null;
if(!hash[a[i]]){
arr.push(a[i]);
hash[a[i]]=true;
}
}
console.log(arr);
}
outRepeat([2,4,5,"a","a"]);//[2,"a"]
方法二:类似于法一,但本农觉着法一更易于理解
rush:js;">
function outRepeat(a){
var hash=[],arr=[];
for (var i = 0,elem;(elem=a[i])!=null; i++) {
if(!hash[elem]){
arr.push(elem);
hash[elem]=true;
}
}
console.log(arr);
}
outRepeat([2,"a"]
方法三:比前两个更易于理解但是返回的新数组每个位子的number类型变为string类型了!!关键时刻得处理
rush:js;">
function outRepeat(a){
var hash=[],arr=[];
for (var i = 0; i < a.length; i++) {
hash[a[i]]=null;
}
for(var key in hash){
arr.push(key);
}
console.log(arr);
}
outRepeat([2,"a"]);//["2","4","5","a"]