Leistungsanalyse: Duplizieren von Arrays in JavaScript mit Slice vs. For-Schleife
In JavaScript gibt es mehrere Ansätze zum Duplizieren eines Arrays. Zwei gängige Methoden sind die Slice-Methode und die for-Schleife. In diesem Artikel wird ihre relative Leistung untersucht, um festzustellen, welche schneller ist.
Slice-Methode:
Die Slice-Methode erstellt ein neues Array, indem sie einen bestimmten Teil des ursprünglichen Arrays extrahiert. Der folgende Code zeigt ein Beispiel:
var dup_array = original_array.slice();
For-Schleife:
Eine for-Schleife durchläuft jedes Element des ursprünglichen Arrays und erstellt manuell eine Kopie in einem neuen Array:
for(var i = 0, len = original_array.length; i < len; ++i) dup_array[i] = original_array[i];
Ergebnisse:
Benchmarks haben ergab, dass die Slice-Methode bei Blink-basierten Browsern wie Chrome und Edge im Allgemeinen schneller ist, während die for-Schleife in anderen Browsern wie Firefox und Safari schneller ist. Dies ist auf interne Optimierungen für Slice und Concat in Blink-Browsern zurückzuführen.
Insbesondere die Spread-Syntax (z. B. [...original_array]) und Array.from() haben sich als die schnellsten Methoden für die Array-Duplizierung herausgestellt , übertrifft in den meisten Szenarien sowohl Slice als auch die for-Schleife.
Benchmark Skripte:
Die folgenden JavaScript-Skripte können in der Konsole des Browsers ausgeführt werden, um die Leistung der for-Schleifen- und Slice-Methoden zu vergleichen:
For-Schleife:
n = 1000 * 1000; start = +new Date(); a = Array(n); b = Array(n); i = a.length; while (i--) b[i] = a[i]; console.log(new Date() - start);
Slice:
n = 1000 * 1000; start = +new Date(); a = Array(n); b = a.slice(); console.log(new Date() - start);
Durch Laufen Wenn Sie diese Skripte mehrmals ausführen, können Sie die relative Leistung jeder Methode unter verschiedenen Browserbedingungen beobachten.
Hinweis: Denken Sie daran, dass diese Methoden nur eine flache Kopie durchführen, d. h. Objekte, auf die im Original verwiesen wird Das Array wird mit dem duplizierten Array geteilt. Erwägen Sie Deep-Cloning-Techniken für komplexere Datenstrukturen.
Das obige ist der detaillierte Inhalt vonSlice vs. For-Schleife in JavaScript: Welche Methode bietet eine schnellere Array-Duplizierung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!