Heim > Web-Frontend > js-Tutorial > Verwendung von Array.from in JavaScript ES6

Verwendung von Array.from in JavaScript ES6

黄舟
Freigeben: 2017-08-23 13:27:40
Original
2052 Leute haben es durchsucht

ES6 fügt die from-Funktion zu Array hinzu, um andere Objekte in Arrays umzuwandeln.

Natürlich haben auch andere Objekte Anforderungen und nicht alle können in Arrays umgewandelt werden.

1. Stellen Sie Objekte mit der Iterator-Schnittstelle bereit, z. B. Set, Map, Array.

2. Was ist ein Array-ähnliches Objekt? Das bedeutet, dass ein Objekt ein Längenattribut haben muss.

Karte konvertieren

Konvertieren Sie die Schlüssel-Wert-Paare des Map-Objekts in ein eindimensionales Array.

Tatsächlich ist die Reihenfolge der konvertierten Array-Elemente Schlüssel1, Wert1, Schlüssel2, Wert2, Schlüssel3, Wert3 ....

const map1 = new Map();
map1.set('k1', 1);
map1.set('k2', 2);
map1.set('k3', 3);
console.log('%s', Array.from(map1))
Nach dem Login kopieren

Ergebnis:

k1,1,k2,2,k3,3
Nach dem Login kopieren

Satz konvertieren

Konvertieren Sie die Elemente des Set-Objekts in ein Array.

const set1 = new Set();
set1.add(1).add(2).add(3)
console.log('%s', Array.from(set1))
Nach dem Login kopieren

Ergebnis

1,2,3
Nach dem Login kopieren

Zeichenfolge konvertieren

Sie können die ASCII-Zeichenfolge auch in ein Datenpaket zerlegen Zerlegen Sie Unicode-Zeichenfolgen genau in Arrays.

console.log('%s', Array.from('hello world'))
console.log('%s', Array.from('\u767d\u8272\u7684\u6d77'))
Nach dem Login kopieren

Ergebnis:

h,e,l,l,o, ,w,o,r,l,d
白,色,的,海
Nach dem Login kopieren

Array-ähnliches Objekt

Ein Array-ähnliches Objekt muss eine Länge haben , Ihre Elementattributnamen müssen numerische Werte oder Zeichen sein, die in numerische Werte konvertiert werden können.

Hinweis: Der Attributname stellt die Indexnummer des Arrays dar. Wenn keine solche Indexnummer vorhanden ist, ist das entsprechende Element im übertragenen Array leer.

console.log('%s', Array.from({  0: '0',  1: '1',  3: '3',
  length:4}))
Nach dem Login kopieren

Ergebnis:

0,1,,3
Nach dem Login kopieren

Wenn das Objekt nicht über das Längenattribut verfügt, wird es in ein leeres Array umgewandelt.

console.log('%s', Array.from({  0: 0,  1: 1}))
Nach dem Login kopieren

Das Ergebnis ist ein leeres Array.

Wenn der Attributname des Objekts nicht in eine Indexnummer umgewandelt werden kann.

console.log('%s', Array.from({
  a: '1',
  b: '2',
  length:2}))
Nach dem Login kopieren

Das Ergebnis ist auch ein leeres Array

Array.from kann drei Parameter akzeptieren

Schauen wir uns an die Definition:

Array.from(arrayLike[, mapFn[, thisArg]])
Nach dem Login kopieren

arrayLike: das konvertierte Objekt.

mapFn: Kartenfunktion.

thisArg: das Objekt, auf das this in der Map-Funktion zeigt.

Der zweite Parameter, die Kartenfunktion

, wird zur Verarbeitung jedes Elements in der Konvertierung verwendet, und das verarbeitete Ergebnis wird als Elementwert verwendet ​​des Ergebnisarrays.

console.log('%s', Array.from([1, 2, 3, 4, 5], (n) => n + 1))
Nach dem Login kopieren

Ergebnis:

Die obige Kartenfunktion fügt tatsächlich 1 zu jedem Wert im Array hinzu.

2,3,4,5,6
Nach dem Login kopieren

Der dritte Parameter, das Objekt, auf das dies in der Kartenfunktion zeigt

Dieser Parameter ist sehr nützlich, wir können Das Verarbeitete Daten und Verarbeitungsobjekte werden getrennt und verschiedene Datenverarbeitungsmethoden werden in verschiedene Objekte gekapselt. Die Verarbeitungsmethoden verwenden denselben Namen.

Wenn Array.from zum Konvertieren des Datenobjekts aufgerufen wird, können je nach tatsächlicher Situation unterschiedliche Verarbeitungsobjekte injiziert werden, um unterschiedliche Ergebnisse zu erzielen, was zur Entkopplung geeignet ist.

Bei diesem Ansatz handelt es sich um die Anwendung eines Vorlagenentwurfsmusters, das der Abhängigkeitsinjektion etwas ähnelt.

let diObj = n + 2'%s'1, 2, 3, 4, 5
Nach dem Login kopieren

Ergebnis:

3,4,5,6,7
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonVerwendung von Array.from in JavaScript ES6. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage