方法一 set 數組去重
定義一個函數 實現數組去重 返回去重後的數組
function norepeat( arr ){
var set = new Set( arr );
return Array.from( set );(返回去重後的數組)
return Array.from( new Set(arr) );
return [...new
Set(arr)];
(最短的去重辦法)
}
}Set(arr)];
}
方法二
思路:先將數組按照必定的順序排好(升序或降序),
用數組相鄰的兩個數作比較,若是相鄰的兩個數不相等,就將前一個數存入到新數組中
編寫函數has(arr , num) 判斷數組中是否存在num這個元素,返回布爾類型
function has(arr,num){
for( var i = 0 ; i < arr.length ; i++ ){
if( arr[i] == num ){
return true; // 有
}
}
return false;//沒有
}
function norepeat2( arr ){
//先將數組進行排序
arr.sort( function(a,b){
return a-b>0;
} )
var newarr = [];//存儲去重後的數據
//遍歷原數組 比較相鄰的兩個數
for( var i = 0 ; i < arr.length ; i++ ){
if( arr[i] != arr[i+1] ){
newarr.push( arr[i] );
}
}
return newarr;
}
var res = norepeat2( [34,2,34,2,45,67,45,67,56,2] );
alert( res );
方法三
思路:定義一個空數組 , 遍歷原數組,判斷原數組中的每個數在空數組中是否存在,若是不存在 ,就將這個數 存入到 空數組中
編寫函數has(arr , num) 判斷數組中是否存在num這個元素,返回布爾類型
function has(arr,num){
for( var i = 0 ; i < arr.length ; i++ ){
if( arr[i] == num ){
return true; // 有
}
}
return false;//沒有
}
function norepeat( arr ){ //arr就是要去重的數組 (原數組)
var newarr = [];//空數組 用來存儲去重後的數據
for( var i = 0 ; i <arr.length ; i++ ){
//var res = has( newarr,arr[i] );
if( !has( newarr,arr[i] ) ){ //不存在
newarr.push( arr[i] );
}
}
return newarr;
}
var res = norepeat2( [34,2,34,2,45,67,45,67,56,2] );
alert( res );