いくつかの方法の配列は、一般的に重複排除機能を使用します

方法1:反復の
VAR ARR = [ "C"、A "" X「];
VAR newArr = [];
のための(VARのI = 0; I <arr.length; I ++){
IF(newArr.indexOf(ARR [I])=== -1){
//存在newArrに追加されない
newArr.push(ARR [I]);
}
}
にconsole.log(newArr);
アイデア:
横断ARR、ARR参照[i]は、-1のindexOf newArr値の存在下または非存在下で、説明が存在しません
存在しない場合(1)、newArr中に添加
(2)、存在する場合、制御できません


方法2:配列添字重複排除方法
VAR ARR = [ "C"、X "" A "" X「];
VAR newArr = [];
のための(VARのI = 0; I <arr.length; I ++){
IF(arr.indexOf(ARR [I])== I){
newArr.push(ARR [I]);
}
}
にconsole.log(newArr);
心:第一項のi番目の位置は、アレイの現在のアレイ内の電流に表示される場合は
、新しいに、最初の時間を表し、iは配列は
私ではありませんので、私は無視し、繰り返される項目を表し

添え字の最初の発生の配列に値を見つけるためのindexOf


方法3:この方法は、重に隣接ソート
、[ "C" VAR ARR ="X-"、 "A"、 "X-"];
arr.sort();
//はconsole.log(ARR);? // [ "A"、 "A"、 "A"、 "A"、「 "" C "" C "" X "" X "" X "" Z "" Z「]
VAR newArr = [ARR [0];
。ため(VAR I = 1、LEN = ARR .LENGTH; IがLEN <; Iは++){
- IF(ARR [I] == newArr [newArr.length 1。]){!
; newArr.push(ARR [I])
}
}
にconsole.log(newArr);
アイデア:
着信ソートし、同じ要素が隣接することになる
新しい配列を作成し、ARR [0];
新しい配列の付加が異なるならば、アレイを横切る、新しい配列値の最後の要素は、比較されます。

 

方法4:最適化方法の反復
VARをARR = [1、3、

(; I <arr.length; VARのI = 0 I ++)のために{
ため(; J <arr.length; VAR =私はJ. 1 + Jを++){
IF(ARR [I] == ARR [J]){
ARR。スプライス(J ,. 1);
J ,;
}
}
}
にconsole.log(ARR)// [1,3,4,5,8,9]

アイデア:
エレメント比較右折することにより、配列が渡された要素を横切ります、
要素は、右側に重複する要素を削除し、重複している場合
の要素、すなわち、内側ループのうち、要素および右を繰り返していない場合、次の要素を比較対象として

おすすめ

転載: www.cnblogs.com/yeanling/p/10943033.html