思路一:准备一个新数组,将原数组中的元素一一放入新数组,放入之前判断该元素是否存在新数组中,不存在的话就直接存入新数组。
//定义函数:判断元素是否在数组中
function has(arr,num){
for(var i=0; i<arr.length; i++){
if(arr[i] === num){
return true;
}
return false;
}
}
//去掉数组中重复的元素
function noRepeat(arr){
var newArr = []; //定义空的新数组
for(var i=0; i<arr.length; i++){
if(!has(newArr,arr[i])){ //如果不存在新数组中,将该元素追加到新数组中
newArr.push(arr[i]);
}
}
return newArr;
}
如果该数组是按从小到大顺序有序排列的。
思路二:准备一个新数组,比较原数组相邻两个数,如果前一个数不等于后一个数,就把前一个数存放在新数组中。
function noRepeat(arr){
var newArr = []; //定义一个新数组
for(var i=0; i<arr.length; i++){
//判断相邻两个元素是否相等。
//注意:当arr[i]为最后一个元素时,arr[i+1]位undefined,arr[i] != undefined,所以是可以取到最后一个元素的。
if(arr[i] != arr[i+1]){
newArr.push(arr[i]);
}
}
return newArr;
}