SORU
20 EKİM 2010, ÇARŞAMBA


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
12 Aralık 2013, PERŞEMBE


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

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bunliu

    bunliu

    2 Mayıs 2007
  • Microsoft Research

    Microsoft Re

    24 EKİM 2008
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010