js去除数组重复项

/**
* js去除数组重复项
*/
//方法一、使用正则法
// reg.test(str),匹配得到就返回true,匹配不到返回false
var arr = ["345","123","123","345","456"];
function RegRemove(){
var str = [];
for(var i = 0,len = arr.length;i < len;i++){//循环数组每一项
if(! RegExp(arr[i],"g").test(str.join(','))) //将新数组串成字符串,去匹配旧数组的每一项,如果匹配不到,说明还没有,就把它存进新数组,
str.push(arr[i]);
}
return str;//最后返回出新数组
}
console.log(RegRemove(arr));


//方法二、使用数组的索引值法
//indexOf() 在新数组中查找元素是否存在,如不存在indexOf()返回-1,把这个元素添加到新数组中,最后返回新数组
function Indexremove(arr){
var newArr=[];
for(var i=0;i<arr.length;i++){
if(newArr.indexOf(arr[i])==-1){
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(Indexremove(arr));

//方法三、使用对象的属性特性法
//如果对象中没有这个属性,我们就赋给它这个属性,同时把它添加到新数组中
function ObjAttrRemove(arr){
var newArr=[];
var obj={};
for(var i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]]=true;
newArr.push(arr[i]);
}
}
return newArr;
}
console.log(ObjAttrRemove(arr));

原文地址:https://www.cnblogs.com/annie211/p/6225322.html