javascript setの値に条件を指定して新しいsetを生成する

javascript setの値に条件を指定して新しいsetを生成する

javascriptでsetの値に条件を指定して新しいsetを生成するサンプルコードを記述してます。一度、スプレッド構文などで配列化してから「filter」で条件を指定して、その後に「set」に戻すことで反転させることができます。

環境

  • OS windows11 pro 64bit
  • Apache 2.4.43
  • ブラウザ chrome 108.0.5359.72

条件を指定して新しいsetを生成する

条件を指定して新しいsetを生成するには、
1. 配列化して「filter」で条件を指定
2. 結果から新しいsetを生成
で可能です。

例えば「set」から偶数のみを抽出する場合は以下のようになります。

const set = new Set([1, 2, 3, 4, 5]);

const result = new Set(
  [...set].filter(function(x) { return (x % 2) === 0 } )
);

console.log(result); // Set(2) {2, 4}

実行結果

「Array.from」を使用しても、配列化は可能で、また関数はアロー関数を使用すると簡潔に記述できます。

const set = new Set([1, 2, 3, 4, 5]);

const result = new Set(
  Array.from(set).filter( x => (x % 2) === 0 )
);

console.log(result);