练习题的题目是:【去掉数组中的重复元素】
1、方法1:
function strip(text){
if(text.length < 2){
return [text[0]] || [];
}
var arr = [];
for(var i=0; i<text.length; i++){
arr.push(text.splice(i--, 1));
for(var j=0; j<text.length; j++){
if(text[j] == arr[arr.length - 1]){
text.splice(j--, 1);
}
}
}
return arr;
};
在控制台中执行代码:
var a = ["abc", "abc", "a", "b", "c", "a", "b", "c"];
alert(strip(a));
可以得到结果为:【abc、a、b、c】
2、方法2
function delRepeat(text){
if(({}).toString.call(text) !== '[object Array]'){
return;
}
var i;
var key;
var l = text.length;
var tp = {};
var result = [];
for(i = l; i--; ){
key = text[i];
!tp[key] && (result.push(key), tp[key] = true);
}
return result;
}
在控制台中执行代码:
console.log(delRepeat(['a','a','b','b']));
可以得到去除重复项之后的结果
3、方法3
//数组去重
function deleteSame(text){
var result = [];
for(var i=0; i<text.length; i++){
if(!hasSection(result,text[i])){
result.push(text[i]);
}
}
return result;
};
//判断一个数组包含不包含一个元素
function hasSection(arr,n){
for(var i=0; i<arr.length; i++){
if(arr[i]==n){
return true;
}
}
return false;
};
执行方法之后,可以得到去除重复项之后的结果
4、方法4
function unique(text){
var hash = {};
var arr = [];
for(var i=0; i<text.length; i++){
if(!hash[text[i]]){
hash[text[i]] = true;
arr.push(text[i]);
}
}
return arr;
};
执行方法之后,可以得到去除重复项之后的结果