去重的方法(数组、字符串)

数组去重
(1)
思路:利用一个函数中for遍历查找出重复元素,有则返回turn,如果全部备遍历完后没则返回false
利用另一个函数判断上一个返回的值
方法:
//去重
//遍历一遍找出重复元素
//方法是:将新数组与原数组进行对比,第一次出现就添加到新数组里,否则就不进行操作。
function has(arra,val){//是否有重复的数值,存在返回turn,否则false
for(let i=0,len=arra.length;i if(arra[i]===val)//存在
return true;
}
return false;
}
function strOne(array){
var newArray = [];
for(var i in array){
if(!has(newArray,array[i]))
newArray.push(array[i]);
}
return newArray;
}
console.log(strOne(arr));
(2)(es6新增)
方法:
function dedupe(array){
return Array.from(new Set(array));
}
console.log(dedupe(arr));
(3)
方法:
function de_weight (array){
var newArray = [];
for(let i=0,len=array.length;i for(let j=i+1;j if(array[i]===array[j])
j=++i;
}
newArray.push(array[i]);
}
return newArray;
}
(4)
方法:
//利用对象来给数组去重
var arr = [12,1,1,12,45,2,3,45,5,6,7,89,9,9,89,1,1,1];
var conet = {};
for(let i=0,len=arr.length;i conet[arr[i]] = arr[i];
}
console.log(Object.values(conet));
字符串去重:
(1)
var str = "dwqewdfsafdfwqewdsadsa";
var strArray = [],newArray=[];
console.log(str.charAt(4));
console.log(str.length);
for(let i=0,len=str.length;i strArray[i] = str.charAt(i);
}
console.log(strArray);
for(let i=0,len=strArray.length;i for(let j=i+1;j if(strArray[i]===strArray[j]){
j=++i;
}
}
newArray.push(strArray[i]);
}
console.log(newArray);
str = "";
for(let i=0,len=newArray.length;i str += newArray[i];
}
console.log(str);
(2)
/**
*思路:对象不会获取相同的属性,从而将属性与属性值对应,拿出属性值,组成新的数组
*/
var str = "dwqewdfsafdfwqewdsadsa";
var conet ={};
for(let i=0,len=str.length;i conet[str.charAt(i)] = str.charAt(i);
}
let string = Object.values(conet);//获取对象里的对应的值
console.log(typeof string);
console.log(string);
string = string.join("");//将数组对象转换变成字符串
console.log(string);

你可能感兴趣的:(去重的方法(数组、字符串))