Heim Web-Frontend js-Tutorial Was Sie über JS-Arrays wissen müssen: Array.from

Was Sie über JS-Arrays wissen müssen: Array.from

Sep 08, 2020 pm 01:21 PM
js数组

Was Sie über JS-Arrays wissen müssen: Array.from

Verwandte Lernempfehlungen: Javascript-Video-Tutorial

Vorwort

Da ich letztes Jahr entdeckte, dass die Ersetzungsmethode von Zeichenfolgen viele magische Verwendungsmöglichkeiten hat, wollte ich diese Serie machen, aber ich Ich hatte nie Zeit, mir einen guten Namen auszudenken, also habe ich ihn auf Eis gelegt. Als ich letzten Freitag meine Hausaufgaben machte, sah ich in den Kommentaren eine Lösung, die darin besteht, Array.from zu verwenden, um das Problem in einer Zeile zu lösen, und es ist ziemlich effizient. Also habe ich mir die Dokumente und Blogs durchgelesen, und nachdem ich es herausgefunden hatte, dachte ich, es sei an der Zeit, mit dieser Serie zu beginnen. Darüber hinaus sind Arrays eine der am häufigsten verwendeten Datenstrukturen in unserer Entwicklung. Als eine der Methoden zur Generierung von Arrays ist es sinnvoll, mit ihnen zu beginnen. Begnügen wir uns einfach mit dem Namen der Serie.

  • Grundlegende Syntax

Definition: Die from()-Methode wird verwendet, um ein Array über ein Objekt oder iterierbares Objekt mit der Eigenschaft length zurückzugeben.

Syntax: Array.from(object, mapFunction, thisValue)

Parameter Beschreibung

object

Erforderlich, das Objekt, das in ein Array konvertiert werden soll.

mapFunction

Optional, die Funktion, die für jedes Element im Array aufgerufen werden soll.

thisValue

Optional, das dieses Objekt in der Mapping-Funktion (mapFunction).

  • Beispielverwendung

1. Klassenarray in Array umwandeln

Array.from('hello')                        //["h", "e", "l", "l", "o"]
Array.from(new Set(['name','age']))        //["name", "age"]
Array.from({name:'lgc',age:25})            //[]
let map=new Map()
map.set('name','lgc')
map.set('age',25)
Array.from(map)                            //[["name", "lgc"],["age", 25]]
function test(){
    console.log(Array.from(arguments))
}
test(1,2,3)                                //[1, 2, 3]复制代码
Nach dem Login kopieren

Beim Schreiben dieser Beispiele habe ich mich immer noch gefragt: Warum kann eine Karte in ein Array umgewandelt werden? Und das Objekt kann nur in ein leeres Array konvertiert werden. Als ich mir das Tutorial für Anfänger ansah und die obige Definition sah, verstand ich es. Objekt hat weder eine Länge noch ein iterierbares Objekt. Ich dachte immer, dass Objekt auch ein iterierbares Objekt sei. Aber tatsächlich ist das Objekt von es6 kein iterierbares Objekt. Ich werde hier nicht näher darauf eingehen.

2. Array-Tiefenkopie (eine Codezeile)

function clone(arr){
    return Array.isArray(arr) ? Array.from(arr, clone):arr
}
let arrayA=[[1,2],[3,4]]
let arrayB=clone(arrayA)
arrayA===arrayB                                  //false
arrayA[0]===arrayB[0]                            //false复制代码
Nach dem Login kopieren

Der zweite Parameter „mapFunction“ von Array.from wird hier hauptsächlich verwendet. Standardmäßig übergibt „mapFunction“ zwei Parameter, den Wert und den Index des Arrays.

3. Array-Deduplizierung

function unique(arr){
    return Array.from(new Set(arr))
}复制代码
Nach dem Login kopieren

Dies ist auch die grundlegendste Funktion von from und eine unserer am häufigsten verwendeten Funktionen.

4. Andere Verwendungen von from

Schauen Sie sich noch einmal die Definition von from an: Die from()-Methode wird verwendet, um ein Array über ein Objekt oder iterierbares Objekt mit dem Attribut length zurückzugeben. Nur Länge haben? Probieren Sie es aus

Array.from({length:2},(val,index)=>index)                        //[0,1]复制代码
Nach dem Login kopieren

Okay, aber was nützt es? Erstens können Sie wie im obigen Code problemlos ein Array innerhalb eines bestimmten Bereichs und mit bestimmten Regeln generieren

Array.from({length:3},(val,index)=>index*10)                     //[0,10,20]复制代码
Nach dem Login kopieren

Zweitens die Initialisierung des Arrays. Sie möchten beispielsweise ein Objektarray mit einer bestimmten Länge generieren. Was war die erste Reaktion? füllen?

let testArr=Array(3).fill({})
testArr[0]===testArr[1]                                         //true复制代码
Nach dem Login kopieren

Jedes Objekt hier ist eigentlich das gleiche. Wenn Sie eines ändern, ändern sich natürlich auch die anderen, aber oft ist das, was wir brauchen, nicht so.

let testArrb=Array.from({length:3},()=>({}))
testArrb[0]===testArrb[1]                                       //false复制代码
Nach dem Login kopieren

Diese beiden Methoden können je nach Bedarf eingesetzt werden.

5. Erweiterte Verwendung von from

Der obige Inhalt ist eigentlich schrittweise darauf ausgelegt, die folgenden Problemlösungsideen besser zu verstehen.

LeetCode-Frage 867:

Gegeben sei die transponierte Matrix einer Matrix A, 返回 A.

Die Transponierung einer Matrix bezieht sich auf das Umdrehen der Hauptdiagonalen der Matrix und das Vertauschen des Zeilenindex und des Spaltenindex der Matrix.

Beispiel 1: Eingabe: [[1,2,3],[4,5,6],[7,8,9]] Ausgabe: [[1,4,7],[2,5,8] ,[3,6,9]] Beispiel 2: Eingabe: [[1,2,3],[4,5,6]] Ausgabe: [[1,4],[2,5],[3,6 ]]

Meine erste Reaktion war damals: War das nicht ein Indextausch? Es ist so einfach. Also habe ich den folgenden Code geschrieben

var transpose = function(A) {
    let x=A.length
    let y=A[0].length
    for(let i=0;i<x;i++){
        for(let j=0;j<y;j++){
            if(j-i>0){
                [A[i][j],A[j][i]]=[A[j][i],A[i][j]]
            }
        }
    }
    return A
};复制代码
Nach dem Login kopieren

Ausführungscode: bestanden, Übermittlung: fehlgeschlagen. Verdammt? Als ich mir die Fehlermeldung ansah, stellte ich fest, dass die Situation in Beispiel 2, in der „Länge und Breite“ nicht gleich sind, ignoriert wurde. Ändern Sie Ihr Denken und drehen Sie die internen und externen Zyklen um. Jedes Mal, wenn die äußerste Schleife ausgeführt wird, wird eine Spalte als Zeile behandelt. Ausführen, bestehen.

Aber diese Version sieht zu teuer aus und die Ausführungszeit ist zu langsam. Aber schließlich habe ich es selbst umgesetzt, sodass Sie im Kommentarbereich nach weiteren Ideen suchen können.

Das Folgende wurde von einem Meister im Kommentarbereich implementiert, aber ich habe es beim ersten Mal nicht verstanden.

var transpose = function(A) {    return Array.from({length:A[0].length},(_v,i)=>A.map(v=>v[i]))};复制代码
Nach dem Login kopieren

{length:A[0].length} verwendet die Breite der gegebenen Matrix als Länge der transponierten Matrix, um die Bedingung „ein Objekt mit dem Attribut length“ zu erfüllen. (_v,i)=>A.map(v=>v[i]) verwendet die Spalten der gegebenen Matrix als Zeilen der transponierten Matrix. Die Kernidee ist dieselbe wie in meiner zweiten Version, aber die Implementierungsmethoden und -techniken sind zu umfangreich. Und die Hinrichtungszeit ist auch kürzer, bete den großen Gott an.

Wenn Sie mehr über das Erlernen des Programmierens erfahren möchten, achten Sie bitte auf die Spalte „PHP-Schulung“!

Das obige ist der detaillierte Inhalt vonWas Sie über JS-Arrays wissen müssen: Array.from. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So entfernen Sie Elemente aus dem es6-Array So entfernen Sie Elemente aus dem es6-Array Jan 11, 2023 pm 03:51 PM

Methode: 1. Verwenden Sie „shift()“, um das erste Element zu löschen. Die Syntax lautet „array.shift()“. 2. Verwenden Sie „pop()“, um das letzte Element zu löschen. Die Syntax lautet „array.pop()“. Verwenden Sie splice(), um Elemente an einer beliebigen Position zu löschen. Die Syntax lautet „array.splice(position, number)“. 4. Verwenden Sie „length“, um die letzten N Elemente zu löschen. Die Syntax lautet „array.length=original array length-N“. 5. Weisen Sie das leere Array „[ ]“ direkt zu, um das Element zu löschen. 6. Verwenden Sie „delete“, um ein Element am angegebenen Index zu löschen.

So konvertieren Sie einen String in ein Array in Javascript So konvertieren Sie einen String in ein Array in Javascript Nov 23, 2022 pm 07:28 PM

3 Konvertierungsmethoden: 1. Verwenden Sie split(), um einen bestimmten String in ein String-Array aufzuteilen. Die Syntax lautet „str.split (Trennzeichen, maximale Länge des Arrays)“. 2. Verwenden Sie den Erweiterungsoperator „...“, iterierbar String-Objekt, konvertieren Sie es in ein Zeichenarray, die Syntax „[...str]“ 3. Verwenden Sie Array.from(), um den String in ein Array zu konvertieren, die Syntax „Array.from(str)“.

Kann ein JS-Array in ein PHP-Array konvertiert werden? Kann ein JS-Array in ein PHP-Array konvertiert werden? Jun 02, 2023 am 10:06 AM

Das JS-Array kann in ein PHP-Array konvertiert werden: 1. Erstellen Sie eine PHP-Beispieldatei. 2. Verwenden Sie die Syntax „JSON.stringify()“, um das JS-Array in einen String im JSON-Format zu konvertieren. Verwenden Sie die Syntax „json_decode()“ „Konvertieren Sie die JSON-Formatzeichenfolge in ein PHP-Array. Der Parameter true wird hier hinzugefügt, was bedeutet, dass die JSON-Formatzeichenfolge in ein PHP-assoziatives Array konvertiert wird.

So erhalten Sie die Länge eines Arrays in js So erhalten Sie die Länge eines Arrays in js Jun 20, 2023 pm 05:33 PM

Die Länge eines Arrays in JS zu ermitteln ist sehr einfach. Jedes Array verfügt über eine Längeneigenschaft, die die maximale Länge des Arrays zurückgibt, d. h. sein Wert ist gleich dem maximalen Indexwert plus 1. Da numerische Indizes kleiner als 2^32-1 sein müssen, ist der Maximalwert des Längenattributs gleich 2^32-1. Der folgende Code definiert ein leeres Array und weist dann dem Element mit dem Index gleich 100 einen Wert zu. Anschließend gibt die Längeneigenschaft 101 zurück. Daher kann das Längenattribut nicht die tatsächliche Anzahl der Array-Elemente widerspiegeln.

Es gibt mehrere Möglichkeiten, ein Element aus einem js-Array zu löschen Es gibt mehrere Möglichkeiten, ein Element aus einem js-Array zu löschen Aug 02, 2023 am 10:09 AM

Es gibt 4 Möglichkeiten, ein Element aus einem js-Array zu löschen: 1. Verwenden Sie splice; 2. Verwenden Sie die Methode „pop“ und „shift“; 4. Verwenden Sie das Schlüsselwort „delete“.

JS-Array-Sortierung: So verwenden Sie die Methode sort() JS-Array-Sortierung: So verwenden Sie die Methode sort() Dec 27, 2023 pm 03:40 PM

Die Array.prototype.sort()-Methode von JavaScript wird zum Sortieren der Elemente eines Arrays verwendet. Diese Methode sortiert an Ort und Stelle, d. h. sie ändert das ursprüngliche Array, anstatt ein neues sortiertes Array zurückzugeben. Standardmäßig sortiert die Methode sort() Zeichenfolgen nach ihren Unicode-Codepunktwerten. Dies bedeutet, dass es hauptsächlich zum Sortieren von Zeichenfolgen und Zahlen und nicht zum Sortieren von Objekten oder anderen komplexen Datentypen verwendet wird.

Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Welche Methoden gibt es, um Duplikate aus JS-Arrays zu entfernen? Aug 09, 2023 pm 04:47 PM

Zu den Methoden zum Deduplizieren von JS-Arrays gehören die Verwendung von Set, die Verwendung von indexOf, die Verwendung von Includes, die Verwendung von Filter und die Verwendung von Reduce. 1. Verwenden Sie Set, das dadurch gekennzeichnet ist, dass die Elemente in der Menge nicht wiederholt werden. 2. Verwenden Sie indexOf, um die erste Indexposition des angegebenen Elements im Array zurückzugeben. 3. Verwenden Sie Includes, um festzustellen, ob bereits ein Element vorhanden ist 4. Verwenden Sie Filter, um Elemente zu filtern. 5. Verwenden Sie Reduzieren, um Elemente in einem Array usw. zu komprimieren.

So ermitteln Sie die Länge und Summe der Elemente eines Arrays in JavaScript So ermitteln Sie die Länge und Summe der Elemente eines Arrays in JavaScript Sep 20, 2022 pm 02:11 PM

In JavaScript können Sie das Längenattribut verwenden, um die Länge des Arrays abzurufen. Die Syntax lautet „array object.length“. Sie können die Funktion „reduce()“ oder „reducRight()“ verwenden, um die Summe der Elemente zu ermitteln. Die Syntax lautet „ arr.reduce(function f(pre,curr){ return pre+cur})“ oder „arr.reduceRight(function f(pre,curr){return pre+cur})“.

See all articles