SORU
1 HAZİRAN 2011, ÇARŞAMBA


Bir dizi önüne için en verimli şekilde Javascript

X ve X N boyutlu bir dizi var varsayarak (burada >N 0)

(N 1) O adımları duymaz dizi ön yerleştirmeyi daha verimli bir yolu var mı?

aslında ben şu anda yapıyorum ne kodu olduğunu

function prependArray(value,oldArray) {
  var newArray = new Array(value);
  for(var i = 0; i < oldArray.length;   i) {
    newArray.push(oldArray[i]);
  } 
  return newArray;
}

Teşekkürler

CEVAP
1 HAZİRAN 2011, ÇARŞAMBA


Büyük O gösterimi açısından daha verimli ama kesinlikle unshift yöntemi kullanılarak daha kısa (ve anlamak için daha kolay olur bu nedenle) hakkında emin değilim:

var a = [1, 2, 3, 4];
a.unshift(0);
a; // => [0, 1, 2, 3, 4]

[Düzenle]

jsPerf benchmark unshift Daha hızlı tarayıcıları, ne olursa olsun, büyük olasılıkla-O farklı performans en az birkaç terbiyeli olduğunu gösterirıffdizi-yer değiştirme Tamam. Eğer gerçekten orijinal dizi o zaman mutasyona olabilir mi çözüm'den daha hızlı olması için görünmüyor hangi parçacık gibi aşağıda bir şeyler yapın:

a.slice(0).unshift(0); // Use "slice" to avoid mutating "a".

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Menglong Tav

    Menglong Tav

    18 Temmuz 2010
  • modica89

    modica89

    24 HAZİRAN 2007
  • NextGenWindows

    NextGenWindo

    8 Kasım 2011