Heim  >  Artikel  >  Web-Frontend  >  Einführung in die Verwendung der JS-Datenstrukturtyperweiterung immutable-js (Codebeispiel)

Einführung in die Verwendung der JS-Datenstrukturtyperweiterung immutable-js (Codebeispiel)

不言
不言Original
2018-09-17 14:43:282025Durchsuche

Dieser Artikel bietet Ihnen eine Einführung in die Verwendung der js-Datenstrukturtyperweiterung immutable-js (Codebeispiele). Ich hoffe, dass er für Sie hilfreich ist.

Im Vergleich zu stark typisierten Sprachen wie Java und .net besteht ein großer Unterschied zwischen js und js darin, dass die Datenstrukturen nur über Arrays und Objekte verfügen und beide dynamisch variabel sind, während Java über List und Set verfügt , Karte und andere Datenstrukturen. Um diese Datenstrukturen in js zu verwenden, wurde daher immutable-js ins Leben gerufen.

1. immutable-js

immutable-js erweitert unveränderliche Sammlungen in JavaScript, also Datentypen, die nach ihrer Erstellung nicht mehr geändert werden können. Dies vereinfacht die Anwendungsentwicklung und die schutzlose Replikation, ermöglicht erweiterte Speicherschemata und verwendet eine einfachere Logik zur Suche nach Updates. Persistente Daten stellen modifizierbare APIs bereit, die die vorhandenen Daten nicht aktualisieren, sondern neue aktualisierte Daten generieren.

2. Bereitgestellte Datentypen

1. Liste: geordnete Indexsammlung, ähnlich wie Array in JavaScript

2 ) Paare) Satz

3. OrderedMap: geordnete Karte

4. Satz: Satz ohne doppelte Werte

5. Stack: Eine indizierte Sammlung, die das Hinzufügen und Entfernen von Elementen unterstützt

7. Range(): Gibt eine Seq.Indexed-Sammlung zurück, die von Anfang bis Ende mit Schrittgröße gefüllt ist. Der Startstandardwert ist 0, der Standardwert von Schritt ist 1 und der Standardwert von end ist unendlich. Wenn start = end, wird eine leere Sammlung zurückgegeben.

8. Repeat(): Gibt eine Seq.Indexed-Sammlung zurück, die den Wert mal mal wiederholt. Wenn times undefiniert ist, wird eine Seq-Sammlung unendlicher Werte zurückgegeben.

9. Datensatz: Ähnlich wie JavaScripts Objekt, empfängt jedoch nur bestimmte Zeichenfolgen als Schlüssel und hat Standardwerte

10. Seq: Ermöglicht die Verwendung von Set-Funktionen höherer Ordnung ohne Zwischensammlungen (Eine Sammlung verzögerter Operationen für effiziente Kettenaufrufe wie Map und Filter

11. Sammlung: die Basisklasse aller Datenstrukturen

3. API bereitgestellt

3.1 fromJS: Konvertieren Sie JS-Daten in unveränderliche JS-Daten.

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 ist: Vergleichen Sie zwei Objekte

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)

Das obige ist der detaillierte Inhalt vonEinführung in die Verwendung der JS-Datenstrukturtyperweiterung immutable-js (Codebeispiel). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn