配列からのようなペンの質問に遭遇した問題、[5,1,6,8,2,4,5,10]、別のアレイを削除[5,6,2,10]で表示されます要素は、唯一の要素など右第1左から削除され、結果が削除された[1、8、4、5]、次のような問題につながります。
同じ要素の複数の削除
使用 filter
VaRの ARR = [1,1,1,2,2,2,3,3 ]; // 要素2で削除 ARR = arr.filter(項目=>アイテム !== 2);
内部スプライス部材の方法でforEachの反復単語の逆循環又は循環の使用は、正しい結果ではない、溶液を逆サイクルを使用することです
VaRの ARR = [1,2,3,1,2,3 ]。 ため(LET I = arr.length - 1; I> = 0; i-- ){ 場合(ARR [I] === 2 ){ arr.splice(I、 1 )。 } }
通常の使い方
VAR ARR = 1 ,. 1 ,. 1、2、2、2 ,. 3 ,. 3。]; VARの A = 2 ; //は、テンプレート文字列を使用し、変数に渡すことができる VAR REG = 新しい新しい "、正規表現({A} $` G " ); ARR = arr.join( " ").replace(REG、" ").split("「)地図(I =>番号(I.))
複数の異なる要素を削除します。
使用 filter
ARR = varが[1,1,1,2,2,2,3,3 ];
//削除素子2,3である
ARR = arr.filter(項目=> [ 2,3] .indexOf(アイテム)= = -1)。
逆循環の使用
ARR = VARは、[1,2,3,1,2,3 ];
(I = LETのarr.length - 1。; I> = 0; i--ため){
//削除する要素が2,3である
IF([ !2,3] .indexOf(ARR [I])== -1 ){
arr.splice(I ,. 1 ); } }
通常の使い方
VAR ARR = 1 ,. 1 ,. 1、2、2、2 ,. 3 ,. 3 ]; //は、要素が2,3である削除 するvar = 23 Aであり; //は、テンプレート文字列を変数に渡すことができる使用 VAR REG = 新しい新しい正規表現( `[$ {A}]`、 "G" ); ARR = arr.join( "")。(REGを交換"").split( "")地図(I =>番号(i));
トピックに戻ります
現在は、使用フィルタ、逆循環と私は期待していなかった通常の方法の方法を考える追加する歓迎。
VaRの ARR = [1,1,1,2,2,2,3,3 ]; //は、最初の要素が2,3で除去 するvar ARR2 [2 ,. 3 =である]; ARR = arr.filter(項目= > { IF(!arr2.indexOf(項目)== -1 ){ arr2.shift(); を返す falseに } 他{ リターン trueに } });
私はあなたの貴重なアドバイスを願っています。