1、去重
清除数组中重复出现的元素:
var arr1 = [ 1,3,3,4,4 , 4,"aba","aba" ]; //数组字面量的形式创建数组。
var arr2 = [ ];
for ( var i=0; i<arr1.length; i++){
if(arr2.indexOf(arr1[i])<0){ // 在数组arr2中匹配是否有arr[i]这个元素存在,有就返回这个元素在数组中的下表位置,没有匹配返回-1
arr2.push(arr1[i]);
}
}
console.log(arr2); 在控制台(f12 热键打开开发者工具)输出的结果是
1 , 3 , 4 , "aba"
2、计算出现重复的次数
var arr1 = [ 1,3,3,4,4,4,"aba","aba" ];
var obj = {};
for( var i=0 ;i< arr1.length; i++){
if( !obj[arr1[i]] ){ //访问对象属性的方式
obj[arr1[i]] = 1; //设置对象属性
}
else{
obj[arr1[i]]++;
}
}
for (key in obj){
console.log(key+":"+obj[key]);
}
3、依据数组清除重复元素的原理,查找字符串中重复出现的字母;
var str = "abareevadrgr";
var str2 = ""; // 存放重复的元素
var arr1 =str.split(""); //将字符串转换成数组。
var arr2 = [ ];
for (var i =0 ; i<arr1.length ; i++){
if( arr2.indexOf(arr1[i])<0){
arr2.push(arr[i]); // 起到一个中转战的作用,以此来排除重复元素。
}
else{
if(str2.indexOf(arr1[i])<0){ //这个字母在字符串 str 中可能出现多次,所以要再判断,避免将重复的元素全部输出。
str2+=arr1[i];
}
}
}
console.log(str2); 在控制台输出的结果是 aer