1. ホーム
  2. javascript

[解決済み] SetをArrayに変換するには?

2022-03-15 06:59:53

質問

設定 は、一意性が保証された要素を持つ配列を作成する良い方法のように見えますが、プロパティを取得する良い方法を公開していません。 mySet.values.next() .

を呼び出すことができれば、これでOKだったのですが。 map といった関数をSets上で使用することができます。しかし、それもできない。

試してみたところ Array.from が、配列のような(NodeListとTypedArrays ?)オブジェクトだけをArrayに変換しているようです。もう一回やってみる。 Object.keys はセットに対して動作せず、Set.prototypeには同様の静的メソッドがありません。

そこで質問です。 与えられたセットの値で配列を作成するための便利な組み込みメソッドはありますか? (要素の順番はあまり関係ありません)。

そのようなオプションが存在しない場合、それを行うための素敵なイディオム的ワンライナーがあるかもしれません。 for...of またはそれに類するもの?

解決方法は?

<ブロッククオート

もし、そのようなオプションがないのであれば、何かいい慣用句があるのかもしれません。 を行うためのワンライナーですか? 例えば、for...of、または同様のものを使用しますか?

確かに セット 配列 :

を使って Array.from

let array = Array.from(mySet);

単純に spreading 配列にセットされた

let array = [...mySet];

昔ながらの方法で、イテレートして新しい配列にプッシュします(セットには forEach )

let array = [];
mySet.forEach(v => array.push(v));

以前は、非標準の、そして今では非推奨の配列内包構文を使用していました。

let array = [v for (v of mySet)];