Zastanawia mnie dlaczego `.concat` w połączeniu tablicy A i B jest wolniejszy od przejechania pętlą po tablicy A i B i `.push`nięcie po kolei wszystkiego do tablicy C.
W skrócie:
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = hege.concat(stale);
vs
var hege = ["Cecilie", "Lone"];
var stale = ["Emil", "Tobias", "Linus"];
var children = [];
for(let i = 0, l = hege.length; i < l; i++) {
children.push(hege[i]);
}
for(let i = 0, l = stale.length; i < l; i++) {
children.push(stale[i]);
}
Różnica IMO jest dość spora bo concat 250k razy w 0.096s a loop ~1.4mln razy w 0.089s. Skąd taka spora różnica? Czy w takim wypadku powinno się w ogóle korzystać z tej funkcji .concat?
W tym przypadku gdzie łącze dwie takie małe tablice wiadomo, że nie ma wielkiej różnicy ale jakbym musiał łączyć kilka tablic, każda po 50k elementów w jakimś interwale to już mogłoby mieć znaczenie.
Jak ktoś chce uruchomić test samemu to można tutaj.