1、定义一个空数组 , 遍历原数组,判断原数组中的每一个数在空数组中是否存在,如果不存在 ,就将这个数 存入到 空数组中
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 = norepeat( [34,34,23,34,56,56,23] ); alert( res );
2、先将数组按照一定的顺序排好(升序或降序) 用数组相邻的两个数做比较,如果相邻的两个数不相等,就将前一个数存入到新数组中
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 );
3、set数组去重
function norepeat(arr) { return [...new Set(arr)]; } console.log(norepeat([1,2,3,4,5,2,3,4,2]))