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

Utilisation de Array.from dans JavaScript ES6

黄舟
Libérer: 2017-08-23 13:27:40
original
2027 Les gens l'ont consulté

ES6 ajoute la fonction from à Array pour convertir d'autres objets en tableaux.

Bien sûr, d'autres objets ont également des exigences, et tous ne peuvent pas être convertis en tableaux.

1. Déployez des objets avec l'interface Iterator, tels que : Set, Map, Array.

2. Objet de type tableau. Qu'est-ce qu'un objet de type tableau ? Cela signifie qu'un objet doit avoir un attribut de longueur, le résultat sera un tableau vide.

Convertir la carte

Convertissez les paires clé-valeur de l'objet Map en un tableau unidimensionnel.

En fait, la séquence des éléments du tableau convertis est key1, value1, key2, value2, key3, value3....

const map1 = new Map();
map1.set('k1', 1);
map1.set('k2', 2);
map1.set('k3', 3);
console.log('%s', Array.from(map1))
Copier après la connexion

Résultat :

k1,1,k2,2,k3,3
Copier après la connexion

Convertir un ensemble

Convertir les éléments de l'objet Set en un tableau.

const set1 = new Set();
set1.add(1).add(2).add(3)
console.log('%s', Array.from(set1))
Copier après la connexion

Résultat

1,2,3
Copier après la connexion

Convertir la chaîne

Vous pouvez désassembler la chaîne ascii en une seule. Les données peuvent également décomposer avec précision les chaînes Unicode en tableaux.

console.log('%s', Array.from('hello world'))
console.log('%s', Array.from('\u767d\u8272\u7684\u6d77'))
Copier après la connexion

Résultat :

h,e,l,l,o, ,w,o,r,l,d
白,色,的,海
Copier après la connexion

Objet de type tableau

Un objet de type tableau doit avoir une longueur , Leurs noms d'attributs d'élément doivent être des valeurs numériques ou des caractères pouvant être convertis en valeurs numériques.

Remarque : le nom de l'attribut représente le numéro d'index du tableau. S'il n'y a pas un tel numéro d'index, l'élément correspondant dans le tableau transféré sera vide.

console.log('%s', Array.from({  0: '0',  1: '1',  3: '3',
  length:4}))
Copier après la connexion

Résultat :

0,1,,3
Copier après la connexion

Si l'objet n'a pas l'attribut length, alors il sera converti en un tableau vide.

console.log('%s', Array.from({  0: 0,  1: 1}))
Copier après la connexion

Le résultat est un tableau vide.

Lorsque le nom d'attribut de l'objet ne peut pas être converti en numéro d'index.

console.log('%s', Array.from({
  a: '1',
  b: '2',
  length:2}))
Copier après la connexion

Le résultat est également un tableau vide

Array.from peut accepter trois paramètres

Regardons la définition :

Array.from(arrayLike[, mapFn[, thisArg]])
Copier après la connexion

arrayLike : l'objet converti.

mapFn : fonction de carte.

thisArg : l'objet pointé par this dans la fonction map.

Le deuxième paramètre, la fonction map

est utilisé pour traiter chaque élément dans la conversion, et le résultat traité est utilisé comme valeurs d'élément ​​du tableau de résultats.

console.log('%s', Array.from([1, 2, 3, 4, 5], (n) => n + 1))
Copier après la connexion

Résultat :

La fonction map ci-dessus ajoute en fait 1 à chaque valeur du tableau.

2,3,4,5,6
Copier après la connexion

Le troisième paramètre, l'objet pointé par celui-ci dans la fonction map

Ce paramètre est très utile, on peut Le les données traitées et les objets de traitement sont séparés et diverses méthodes de traitement des données sont encapsulées dans différents objets. Les méthodes de traitement utilisent le même nom.

Lors de l'appel à Array.from pour convertir l'objet de données, différents objets de traitement peuvent être injectés en fonction de la situation réelle pour obtenir des résultats différents, ce qui convient au découplage.

Cette approche est l'application d'un modèle de conception de modèle, qui est quelque peu similaire à l'injection de dépendances.

let diObj = n + 2'%s'1, 2, 3, 4, 5
Copier après la connexion

Résultat :

3,4,5,6,7
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