ホームページ > ウェブフロントエンド > jsチュートリアル > js データ構造型拡張子 immutable-js の使用の概要 (コード例)

js データ構造型拡張子 immutable-js の使用の概要 (コード例)

不言
リリース: 2018-09-17 14:43:28
オリジナル
2043 人が閲覧しました

この記事では、js データ構造型拡張子 immutable-js の使用方法を紹介します (コード例)。必要な方は参考にしていただければ幸いです。

Java や .net などの厳密に型指定された言語と比較すると、js と js の大きな違いの 1 つは、データ構造が配列とオブジェクトのみであり、それらはすべて動的に変数であるのに対し、Java にはリスト、セット、マップ、その他のデータ構造。そこで、これらのデータ構造をjsで利用するためにimmutable-jsが登場しました。

1. immutable-js

immutable-js は、JavaScript の不変コレクション、つまり、一度作成すると変更できないデータ型を拡張します。これにより、アプリケーション開発、無防備なレプリケーションが簡素化され、より高度なメモリ スキームが有効になり、より単純なロジックを使用して更新を確認できます。永続データは、データをその場で更新するのではなく、新しい更新データを生成する変更可能な API を提供します。

2. 提供されるデータ型

1. リスト: JavaScript の配列に似た順序付きインデックス コレクション

#2. 順序なしのキーと値のペア ((key , value ) ペア) set

3. OrderedMap: 順序付けされた Map

4. Set: 重複する値を含まないセット

##5. Stack: 要素の追加と削除をサポートするインデックス コレクション。

7: Range(): 開始から終了までのステップ サイズが入力された Seq.Indexed コレクションを返します。開始のデフォルト値は 0 (ステップのデフォルト値) です。は 1 で、end のデフォルト値は無限大です。 start = end の場合、空のコレクションが返されます。

8.Repeat(): value の回数を繰り返す Seq.Indexed コレクションを返します。時間が定義されていない場合は、無限値の Seq コレクションを返します。

9. レコード: JavaScript のオブジェクトに似ていますが、特定の文字列のみをキーとして受け取り、デフォルト値を持ちます。

10. 中間コレクションなしで高階コレクション関数を使用できます。マップ、フィルターなどの効率的なチェーン呼び出しのための遅延操作のコレクション)

11. コレクション: 提供されるすべてのデータ構造の基本クラス

#3。 ##3.1 fromJS: js データを immutable-js 型データに変換します

const { fromJS, isKeyed } = require('immutable@4.0.0-rc.9');
fromJS({ a: {b: [10, 20, 30]}, c: 40}, function (key, value, path) {
  console.log(key, value, path)
  return isKeyed(value) ? value.toOrderedMap() : value.toList()
})

> "b", [ 10, 20, 30 ], [ "a", "b" ]
> "a", {b: [10, 20, 30]}, [ "a" ]
> "", {a: {b: [10, 20, 30]}, c: 40}, []
ログイン後にコピー

3.2 は: 2 つのオブジェクトを比較します

const { Map, is } = require('immutable@4.0.0-rc.9')
const map1 = Map({ a: 1, b: 1, c: 1 })
const map2 = Map({ a: 1, b: 1, c: 1 })
assert.equal(map1 !== map2, true)
assert.equal(Object.is(map1, map2), false)
assert.equal(is(map1, map2), true)
ログイン後にコピー

以上がjs データ構造型拡張子 immutable-js の使用の概要 (コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート