2017-08-27 14 views
2

私はES6のSet機能について話しています。「取得」メソッドがES6の「セット」に存在しないのはなぜですか?

let set = new Set(); 
set.add("1", { Name: "myName", Age: 13 }) 
set.add("2", { Name: "yourName", Age: 14 }) 
console.log(set); 

値を取得するには、セットをループして値を取得する必要があります。 Ofcouseでは、ループ前にhasメソッドを使用して検証できます。

しかし、私たちはその値へのアクセスを得るためにキーを渡すことができget方法を避けるために理由かもしれませんか?

+3

セットの既知の要素を取得する目的は何でしょうか? –

+0

私は問題の例を変更しました。 setを辞書として使うことはできませんか? '' Name' "、Age:14}' – Sreekumar

+3

'' Map''の可能性を考えていますか? –

答えて

5

あなたはMapためSetを勘違いしています。 Setは、一意の値のセットであり、キー/値のマッピングではありません。したがって、取得するものがないため、「取得」はありません。セットに値がある場合は、すでにそれを持っています。 Mapは、キーと値のマッピング用です。

例のコードでは、2番目の引数として渡されるオブジェクトではなく、Set.prototype.addによって完全に無視されるのではなく、と"2"がセットに追加されます。

Mapは、当然のことながら、getを持っているん:

let map = new Map(); 
 
map.set("1", { Name: "myName", Age: 13 }) 
 
map.set("2", { Name: "yourName", Age: 14 }) 
 
console.log(map.get("1"));

+0

私はマップについて知るようになったが、キーを一意に作ることができるので、単に「Set」を考えるとデータを取得する際のパフォーマンスが向上する可能性がある。我々は 'Map'と同じように、' Set'は辞書のように保存することができないのであれば、私は 'Map'のみ – Sreekumar

+3

@Sreekumarを使用する必要があります。Map's'内のキーは**ユニークです。 –

関連する問題