1.sort排序比较
var a = [ 1 , 2 , 5 , 6 , 2 , 1 , 0 , 2 , 8 , 4 , 56 , 4 , 65 , 4 ] ;
var n = [ ] ;
var s = a. sort ( function ( a, b) {
return a - b;
} )
function cz ( num) {
if ( num < s. length) {
if ( s[ num] !== s[ num+ 1 ] ) {
n. push ( s[ num] ) ;
}
arguments. callee ( num+ 1 ) ;
}
}
cz ( 0 ) ;
console. log ( n)
2.indexOf
var arr = [ "hehe" , "haha" , "heihei" , "haha" , "oo" , "hehe" , "haha" ] ;
var arr2 = [ ] ;
function strCz ( num2) {
if ( num2 <= arr. length- 1 ) {
if ( arr2. indexOf ( arr[ num2] ) === - 1 ) {
arr2. push ( arr[ num2] ) ;
}
arguments. callee ( num2+ 1 ) ;
}
}
strCz ( 0 )
console. log ( arr2) ;
3.双重for循环
var tm = [ "sd" , "asdas" , "sd" , 1 , 2 , 3 , 4 , 5 , 51 , 13 , 2 , 3 , 1 , 2 ] ;
var tm2 = [ ] ;
for ( var i= 0 ; i< tm. length; i++ ) {
for ( var j= i+ 1 ; j< tm. length; j++ ) {
if ( tm[ i] == tm[ j] ) {
i++ ;
j= i;
}
}
tm2. push ( tm[ i] ) ;
}
console. log ( tm2) ;
4.splice
var ars = [ "asdas" , "s" , "asda" , "asda" , "asda" , 1 , 2 , 3 , 4 , 5 , 3 , 2 , 1 ] ;
for ( var i= 0 ; i< ars. length; i++ ) {
for ( var j= i+ 1 ; j< ars. length; j++ ) {
if ( ars[ i] == ars[ j] ) {
ars. splice ( j, 1 ) ;
j-- ;
}
}
}
console. log ( ars)
5.for…of + includes()
removeDuplication ( arrayA, arrayB) {
let arrNew = arrayA. concat ( arrayB)
let result = [ ]
for ( let i of arrNew) {
! result. includes ( i) && result. push ( i)
}
return result
}
6.Array.filter() + indexOf
removeDuplication ( arrayA, arrayB) {
let arrNew = arrayA. concat ( arrayB)
return arrNew. filter ( ( item, index) => {
return arrNew. indexOf ( item) === index
} )
}
7.Array.from() + new Set()
removeDuplication ( arrayA, arrayB) {
return Array. from ( new Set ( [ ... arrayA, ... arrayB] ) )
}
另一种用法;
function unique ( arr) {
return Array. from ( new Set ( arr) )
}
var arr = [ 1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 ] ;
unique ( arr)
8.for…of + Object
removeDuplication ( arrayA, arrayB) {
let arrNew = arrayA. concat ( arrayB)
let result = [ ]
let obj = { }
for ( let i of arrNew) {
if ( ! obj[ i] ) {
result. push ( i)
obj[ i] = 1
}
}
return result
}
9.reduce
< script>
function getNewArr ( arr) {
return arr. reduce ( ( pre, next) => {
return pre. includes ( next) ? pre: [ ... pre, next]
} , [ ] )
}
console. log ( getNewArr ( [ 1 , 4 , 5 , 7 , 3 , 4 , 1 , 0 , 5 , 6 , 5 , 3 , 1 ] ) )
< / script>