JS数组去重
var arr = [ 0 , 1 , 1 , 1 , 1 , 1 , 2 , 3 , 4 , 4 , 4 , 5 , 6 , 6 , 7 , 8 , 8 , 9 ] ;
function unset ( arr ) {
return Array. from ( new Set ( arr) )
}
console. log ( unset ( arr) , "set方法" )
function unsplice ( arr ) {
for ( var i = 0 ; i < arr. length; i++ ) {
for ( var j = i + 1 ; j < arr. length; j++ ) {
if ( arr[ i] == arr[ j] ) {
arr. splice ( j, 1 ) ;
j-- ;
}
}
}
return arr
}
console. log ( unsplice ( arr) , "splice方法" ) ;
function unindexOf ( arr ) {
if ( ! Array. isArray ( arr) ) {
console. log ( '错误!' )
return
}
var array = [ ] ;
for ( var i = 0 ; i < arr. length; i++ ) {
if ( array. indexOf ( arr[ i] ) === - 1 ) {
array. push ( arr[ i] )
}
}
return array
}
console. log ( unindexOf ( arr) , "indexOf方法" ) ;
function unincludes ( arr ) {
if ( ! Array. isArray ( arr) ) {
console. log ( 'type error!' )
return
}
var array = [ ] ;
for ( var i = 0 ; i < arr. length; i++ ) {
if ( ! array. includes ( arr[ i] ) ) {
array. push ( arr[ i] ) ;
}
}
return array
}
console. log ( unincludes ( arr) , "includes方法" )
function unfilter ( arr ) {
return arr. filter ( function ( item, index, arr ) {
return arr. indexOf ( item, 0 ) === index;
} ) ;
}
console. log ( unfilter ( arr) , "filter方法" ) ;