数组去重的多种方法实现
<script>
//第一种方式
var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
var newArr = []; //定义一个新的临时数组
var result = {}; //hash表
for(var i=0;i<arr.length;i++){ //循环遍历数组
if(!result[arr[i]]){ //如果遍历到的数组不在hash表中
result[arr[i]] = true; //将当前遍历到的数组元素存入到hash表中
newArr.push(arr[i]); //将当前元素push到新数组
}
}
console.log(newArr);
//第二种方法
var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
var newArr = []; //定义一个新的临时数组
for(var i=0;i<arr.length;i++){ //遍历数组
if(newArr.indexOf(arr[i])==-1) newArr.push(arr[i]);
//判断当前元素是否能在临时数组中找到,如果没找到就将其追加到临时数组中,再对当前元素后面的元素继续查找以及比较
}
console.log(newArr);
//第三种方式
var arr=[23,1,34,7,1,3,5,2,3]; //定义一个数组
arr.sort(); //先将数组排序
var newArr=[arr[0]]; //定义一个新数组,并将数组第一个元素放到新数组中
for(var i=0;i<arr.length;i++){
if(arr[i] !==newArr[newArr.length-1]){ //通过判断相邻两项是否相等,然后项新数组中追加元素,返回新数组
newArr.push(arr[i]);
}
}
console.log(newArr);
</script>