1. ホーム
  2. javascript

[解決済み] 別の配列に含まれるすべての要素を削除する

2022-03-16 02:53:30

質問

私は、javascriptの配列からすべての要素を削除する効率的な方法を探しています(それらが別の配列に存在する場合)。

// If I have this array:
var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g'];

// and this one:
var toRemove = ['b', 'c', 'g'];

myArrayを操作して、この状態のままにしておきたい。 ['a', 'd', 'e', 'f']

jQueryでは grep()inArray() というように、うまく機能します。

myArray = $.grep(myArray, function(value) {
    return $.inArray(value, toRemove) < 0;
});

ループやスプライシングをせずに、純粋なjavascriptでこれを行う方法はありますか?

どのように解決するのですか?

を使用します。 Array.filter() メソッドを使用します。

myArray = myArray.filter( function( el ) {
  return toRemove.indexOf( el ) < 0;
} );


小さな改善点として、ブラウザのサポートが Array.includes() が増えました。

myArray = myArray.filter( function( el ) {
  return !toRemove.includes( el );
} );


を使った次の適応 矢印機能 :

myArray = myArray.filter( ( el ) => !toRemove.includes( el ) );