方案一:
//新建空白新数组resultArr(这将是去重后输出的数组)
var resultArr= [];
//创建函数has,形参为arr及num,该函数的作用为验证arr数组中是否有num这个数
function has( arr, num ) {
for( var i = 0; i < arr.length; i++ ) {
if( arr[i] == num ) {
return true;
}
}
return false;
}
//遍历数组arr,利用has函数进行判断,若依次遍历的arr的项在resultArr中不存在,则添加到brr中
function noRepeat( arr ) {
for( var i = 0; i < arr.length; i++ ) {
if( !has( resultArr, arr[i] ) ) {
resultArr.push( arr[i] );
//或者更酷炫的写法,可以这样写:resultArr[resultArr.length] = arr[i];
}
}
return resultArr;
}
//调用该函数,实现数组去重
noRepeat( [1,1,1,2,3,3,24,3] ); //[1,2,3,24]
方案二:
var arrTest = [1,1,2,1,3,1,2];
//对数组进行排序(升序降序都可以),此处采用数组的冒泡排序
function bubbleSort( arr ) {
for( var i = 0; i < arr.length-1; i++ ) { //控制比较轮数,有多少项,比较多少-1次,最后一个数没必要进行比较
for( var j = 0; j < arr.length-1-i; j++ ) {//控制每轮比较次数
if( arr[j] > arr[j+1] ) {//大小交换,实现最终升序排列
var temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
bubbleSort(arrTest);
// 对数组进行遍历,且依次比较相邻的俩项,若不相等,将第一项存入新数组
function noRepeat2( arr ) {
var newArr = [];
for( var i = 0; i < arr.length; i++ ) {
if( arr[i] != arr[i+1] ) {
newArr.push( arr[i] );
}
}
return newArr;
}
noRepeat2( arrTest );//[1,2,3]