数组去重
1.遍历数组法
function
unique1(array){
var
n = [];
//一个新的临时数组
//遍历当前数组
for
(
var
i = 0; i < array.length; i++){
//如果当前数组的第i已经保存进了临时数组,那么跳过,
//否则把当前项push到临时数组里面
if
(n.indexOf(array[i]) == -1) n.push(array[i]);
}
return
n;
}
2.对象值判断
var Array1=['a',1,1,'a','b','b','c',6,5,6];
Array.prototype.unque2=function(){
var arr=[];
var json={};
for(var i=0;i<Array1.length;i++){
if(!json[this[i]]){
arr.push(this[i]);
json[this[i]]=1;
}
}
return arr;
}
3.下标判断
//给传入数组排序,排序后相同值相邻,然后遍历时新数组只加入不与前一值重复的值。
function
unique3(array){
var
n = [array[0]];
//结果数组
//从第二项开始遍历
for
(
var
i = 1; i < array.length; i++) {
//如果当前数组的第i项在当前数组中第一次出现的位置不是i,
//那么表示第i项是重复的,忽略掉。否则存入结果数组
if
(array.indexOf(array[i]) == i) n.push(array[i]);
}
return
n;
}
/ 将相同的值相邻,然后遍历去除重复值
function
unique4(array){
array.sort();
var
re=[array[0]];
for
(
var
i = 1; i < array.length; i++){
if
( array[i] !== re[re.length-1]){
re.push(array[i]);
}
}
return
re;
}
字符串去重的四种方法
1.for遍历
function quchong1(str){
var newStr="";
var flag;
for(var i=0;i<str.length;i++){
flag=1;
for(var j=0;j<newStr.length;j++){
if(str[i]==newStr[j]){
flag=0;
break;
}
}
if(flag) newStr+=str[i];
}
return newStr;
}
2.indexOf(无兼容问题)
function quchong2(str){
var newStr="";
for(var i=0;i<str.length;i++){
if(newStr.indexOf(str[i])==-1){
newStr+=str[i];
}
}
return newStr;
}
3.search()方法
function quchong3(str){
var newStr="";
for(var i=0;i<str.length;i++){
if(newStr.search(str[i])==-1)
newStr+=str[i];
}
return newStr;
}
4.对象属性
function quchong4(str){
var obj={};
var newStr="";
for(var i=0;i<str.length;i++){
if(!obj[str[i]]){
newStr+=str[i];
obj[str[i]]=1;
}
}
return newStr;
}