Maison > interface Web > js tutoriel > le corps du texte

Introduction à l'utilisation de l'extension de type de structure de données js immutable-js (exemple de code)

不言
Libérer: 2018-09-17 14:43:28
original
2023 Les gens l'ont consulté

Cet article vous présente une introduction à l'utilisation de l'extension de type de structure de données js immutable-js (exemples de code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Par rapport aux langages fortement typés tels que Java et .net, une grande différence entre js et js est que les structures de données n'ont qu'un tableau et un objet, et les deux sont variables dynamiquement, tandis que Java a une liste, un ensemble , Carte et autres structures de données. Par conséquent, afin d'utiliser ces structures de données dans js, immutable-js a vu le jour.

1. immutable-js

immutable-js étend les collections immuables en JavaScript, c'est-à-dire les types de données qui ne peuvent pas être modifiés une fois créés. Cela simplifie le développement d'applications, la réplication sans défense, permet des schémas de mémoire plus avancés et utilise une logique plus simple pour vérifier les mises à jour. Les données persistantes fournissent des API modifiables qui ne mettent pas à jour les données en place, mais génèrent de nouvelles données mises à jour.

2. Types de données fournis

1. Liste : collection d'index ordonnée, similaire à Array en JavaScript

2. ) paires) ensemble

3. OrderedMap : carte ordonnée

4 Set : ensemble sans valeurs en double

5. OrderedSet : ensemble ordonné

6. Stack : Une collection indexée qui prend en charge l'ajout et la suppression d'éléments

7. Range() : Renvoie une collection Seq.Indexed remplie du début à la fin avec la taille du pas, la valeur par défaut de départ est 0, la valeur par défaut du pas est 1, et la valeur par défaut de end est l'infini. Si start = end, une collection vide est renvoyée.

8. Repeat() : renvoie une collection Seq.Indexed qui répète la valeur plusieurs fois. Si times n’est pas défini, renvoie une collection Seq de valeurs infinies.

9. Record : similaire à l'objet JavaScript, mais ne reçoit que des chaînes spécifiques comme clés et a des valeurs par défaut.

10 : permet d'utiliser des fonctions d'ensemble d'ordre supérieur sans collections intermédiaires. ( Une collection d'opérations paresseuses pour des appels en chaîne efficaces tels que map et filter

11. Collection : la classe de base de toutes les structures de données

3. API fournie

3.1 fromJS : Convertir une donnée js en données de type immuable-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}, []
Copier après la connexion

3.2 est : Comparer deux objets

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)
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal