javascript数组中若存在重复元素,此时我们需要将重复的元素去除,下面我讲介绍一下几种方法进行数组元素去重
一. 临时数组法
新建一新数组,遍历要去重的数组,将值一一插入新数组中,若已存在此元素,则跳过。
function uniqArray(array){
var temp = []; // 一个新的临时数组
for(var i = 0; i < array.length; i++){
if(temp.indexOf(array[i]) == -1){
temp.push(array[i]);
}
}
return temp;
}
二. 数组下标法
如果当前数组的第i项在当前数组中第一次出现的位置不是i, 那么表示第i项是重复的,忽略掉。否则存入结果数组。此方法还是得调用“indexOf”性能跟方法1差不多。
function uniqArray(array){
var temp = [];
for(vari = 0; i < array.length; i++) {
// 如果当前数组的第i项在当前数组中第一次出现的位置是i,才存入数组;否则代表是重复的
if(array.indexOf(array[i]) == i){
temp.push(array[i])
}
}
return temp;
}
三. 排序后相邻去除法
给传入数组排序,排序后相同值相邻,然后遍历时,新数组只加入不与前一值重复的值。会打乱原来数组的顺序。
function uniqArray(array){
array.sort();
var temp=[array[0]];
for(vari = 1; i < array.length; i++){
if( array[i] !== temp[temp.length-1]){
temp.push(array[i]);
}
}
return temp;
}