Bir Dizi çoğaltmak için Javascript en hızlı şekilde döngü için vs dilim
Javascript bir Dizi çoğaltmak için
herkes daha hızlı kullanmak için ise: (ve belki de test) yapar
Dilim yöntemi:
var dup_array = original_array.slice();
yaDöngü için:
for(var i = 0, len = original_array.length; i < len; i)
dup_array[i] = original_array[i];
GÜNCELLEME: (sadece kendimi açıklamak için) biliyorum her iki yönde sadecesığ kopyalayın: eğer original_array nesnelere başvurular içeriyorsa, nesnelerin klonlanmış olmayacak, ancak başvurular her iki dizide aynı nesnelere başvurular olacak, bu nedenle kopyalanacaktır. Ama bu sorunun amacı değildir.
Sadece hız soruyorum.
CEVAP
En azından vardır4(!) ana yolu bir dizi klon için:
- döngü
- kurucu
- dilim / birleşme
- herhangi bir parametre
14 alt - yolu var. Onlar için benchmark iplik bulun. Birçok holywars bunların arasında en uygun olanı seçmek yaşandı... Kriter tek yargıç vardır:
BENCHMARKS thread
Ve IE 11 iOS 7 için 6, 25 Safari Safari, Firefox hala taş devrinde olduğunu görmek garip ve while
bir döngü kullanarak onlar için en hızlı yol. Tek bir adımda doğal yöntemleri kullanarak klonlama C / Çevirici hazırlanmış ve iç optimizasyon için (doğrudan bellek bloğu kopyalama kullanmanız gerekir) açık nedeniyle tercih edilir sanırım. Bu zaten V8 uygulanan ve gelecekte başkaları tarafından uygulanması gerektiğini tahmin ediyorum.
Hızlı cevap
var b = a.slice();
concat
kullanarak doğru.
Bu cevap çabuk eski haline gelir. Kriterler fiili durumu kontrol etmek için kullanın
'döngü için en hızlı yol boyunca ...
En verimli şekilde sıfır JavaScript di...
Bir dizi önüne için en verimli şekilde...
Bir döngü içinde nesne harfleri bir di...
Java hızlı ve kolay bir şekilde ayırıc...