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マップとリストでプッシュ操作を実行する方法。
- 8. 複数のseqからマップを作成する
- 9. seqとseqの違いは何ですか?
- 10. scala Seqとmap()へのマップが突然エラーなしで失敗する
- 11. Immutable.js mergeDeepWith問題
- 12. 再来&Immutable.js - JSON
- 13. Seq toDictionary
- 14. Immutable.js Record.setタイプチェックwith TypeScript
- 15. Immutable.jsとキー入力時のショートカット
- 16. Immutable.js List()とList.of()の違いは?
- 17. Immutable.jsとflatMap相当の関数
- 18. immutable.jsマップの最初のキー(値ではない)を取得する方法は?
- 19. CouchDB:update seqとドキュメント_idとの相関
- 20. clojure consとlazy-seqとのconj
- 21. jQuery 1.7.1/eval/seq/
- 22. NamedParameterのAnorm seq
- 23. F#Seq diff
- 24. Wireshark、seq&ack numbers
- 25. Seqの変更可能なマップをScalaのIndexedSeqの不変のマップに変換する
- 26. Immutable.js SETIN方法でスタック
- 27. Immutable.js地図値配列
- 28. Immutable.js地図セット対更新
- 29. Immutable.jsの追加の拡張?
- 30. Immutable.js型を拡張する
「Seq」には、HAMTを作成する代わりに基礎となるデータ構造をラッピングするという利点もあります。 HAMTは、突然変異が作られたとき(つまりデータを共有するとき)、スペースを節約するのには適していますが、決して変わらないデータを単に保存したいときにはあまり効果がありません。その場合、 'Map'に' Seq'を使用してください – Carlo