Immutable.jsのMapとSeqの違いは何ですか?あなたはその2つの違いを示す例を提供してください。immutable.js:マップとSeq
0
A
答えて
1
不変のMap
は、のペアで構成された順序がありませんIterable.Keyed
です。
// create a Map()
const map = Map({a: 1, b: 'Hello'});
// get a value for a specific key
console.log(map.get('b'));
> "Hello"
// set a new value and assign it to a new Map()
const newMap = map.set('c', 'This is a new key/value pair');
console.log(newMap.get('c'));
> "This is a new key/value pair"
それは、そうでsetIn()
、deleteIn()
、merge()
、map()
となどの様々な方法へのアクセスを提供します。また、他の変更不可能なデータ型に変換することもできます。 the docs about all of these methods.
変更不可能Seq
は、基本となるデータ構造を持つ必要のない反復可能な値のシーケンスです。これはMap
からの最初の大きな違いであり、あなたがその定義でこれを見ることができます:
class Map<K, V> extends Collection.Keyed<K, V>
中:権利を取得-行くから、我々はSeq
にはないことがわかります
class Seq<K, V> extends Iterable<K, V>
キー値があり、大きな違いはMap
です。もう1つの大きな違いは、Seq
構造の要素を追加、更新、または削除できないことです。
In addition, to quote Lee Byron:
A配列怠惰な動作です。以前のIterableの非常に軽量なコンテナと、適用するいくつかの操作(マップ、フィルタなど)と考えることができます。その操作は、値を取得するために必要なときにのみ適用されます。 Seqは値そのものを格納しません。
Seq
は軽量であるため、特定のロジックチェーンではパフォーマンスが向上する可能性があります。また、JavaScriptオブジェクトに豊富なコレクションAPIを提供するために頻繁に使用されることに注意してください。
関連する問題
- 1. フローとImmutable.jsマップ
- 2. immutable.jsはマップをエクスポートしません
- 3. Immutable.jsはと
- 4. Seqヘッドとテール
- 5. Immutable.jsマップからコンポーネントを動的にレンダリングします
- 6. どのようにしてimmutable.jsマップをデフォルトに戻すか
- 7. immutable.jsマップとリストをreduxアプリケーションにネストする必要がありますか?
- 8. 入れ子のImmutable.jsマップとリストでプッシュ操作を実行する方法。
- 9. immutable.jsのパフォーマンスは、ネストされたマップ/オブジェクトとの比較/等しいですか?
- 10. 複数のseqからマップを作成する
- 11. seqとseqの違いは何ですか?
- 12. scala Seqとmap()へのマップが突然エラーなしで失敗する
- 13. Immutable.js mergeDeepWith問題
- 14. 再来&Immutable.js - JSON
- 15. Scala Seqとリストのパフォーマンス
- 16. Seq toDictionary
- 17. Immutable.js Record.setタイプチェックwith TypeScript
- 18. Immutable.jsとキー入力時のショートカット
- 19. Immutable.js List()とList.of()の違いは?
- 20. Immutable.jsとflatMap相当の関数
- 21. immutable.jsマップの最初のキー(値ではない)を取得する方法は?
- 22. CouchDB:update seqとドキュメント_idとの相関
- 23. clojure consとlazy-seqとのconj
- 24. F#Seq diff
- 25. Wireshark、seq&ack numbers
- 26. NamedParameterのAnorm seq
- 27. jQuery 1.7.1/eval/seq/
- 28. foldLeftにSeq [Seq [SomeType]]を累積することができません
- 29. Seqの変更可能なマップをScalaのIndexedSeqの不変のマップに変換する
- 30. greenplumのテーブルスキャンとseqスキャンの違い
「Seq」には、HAMTを作成する代わりに基礎となるデータ構造をラッピングするという利点もあります。 HAMTは、突然変異が作られたとき(つまりデータを共有するとき)、スペースを節約するのには適していますが、決して変わらないデータを単に保存したいときにはあまり効果がありません。その場合、 'Map'に' Seq'を使用してください – Carlo