在日常js代码的编写中对于数组的使用比较频繁,数组中删除重复元素我推荐使用两种方法:
1.建立一个新数组,在新数组中判断是否可以获取到原数组中值的索引,来消除原数组中重复的值;
//var student = ['qiang','ming','tao','tao','liang','you','qiang','li'];
var student = [1,2,2,2,3,4,4,5,6,6];
function unique1(arr){
var Tarr=new Array();
for (var i = 0; i < arr.length; i++) {
if(Tarr.indexOf(arr[i])<0)
Tarr.push(arr[i]);
}
return Tarr;
}
var quarr1 = unique1(student);
alert(quarr1);
2.通过调换原数组中键值的位置,自动删除重复的元素,这种方法不太好理解;
//var student = ['qiang','ming','tao','tao','liang','you','qiang','li'];
var student = [1,2,2,2,3,4,4,5,6,6];
function unique1(arr){
var tmp = new Array();
for(var m in arr){
tmp[arr[m]]=1;
}
alert(tmp);
//再把键和值的位置再次调换
var tmparr = new Array();
for(var n in tmp){
tmparr.push(n);
}
return tmparr;
}
var quarr=unique1(student);
alert(quarr);
这两种方法相比较而言,第一种方法更好理解,方便操作,第二种虽不好理解但是也是一种特殊的思路值得学习和研究。