Daha
Dizi öğelerini başka bir diziye kopyalama
Yeni bir dizi olan newArray
içine itmek istediğim bir JavaScript dizisi dataArray
var. Ancak newArray[0]
dizisinin dataArray
olmasını istemiyorum. Tüm öğeleri yeni dizinin içine itmek istiyorum:
var newArray = [];
newArray.pushValues(dataArray1);
newArray.pushValues(dataArray2);
// ...
ya da daha iyisi:
var newArray = new Array (
dataArray1.values(),
dataArray2.values(),
// ... where values() (or something equivalent) would push the individual values into the array, rather than the array itself
);
Böylece yeni dizi, tek tek veri dizilerinin tüm değerlerini içerir. Öğeleri tek tek ekleyerek her bir dataArray
üzerinde yinelemek zorunda kalmamam için pushValues
gibi bir kısayol var mı?
846
3
concat]1 fonksiyonunu aşağıdaki gibi kullanın:
newArray
değeri
[1, 2, 3, 4]olacaktır (
arrayAve
arrayBdeğişmeden kalır;
concat` sonuç için yeni bir dizi oluşturur ve döndürür).Dizilerinizin çok büyük olmaması koşuluyla (aşağıdaki uyarıya bakın), değer eklemek istediğiniz dizinin
push()
yöntemini kullanabilirsiniz. push()metodu birden fazla parametre alabilir, böylece
apply()metodunu kullanarak itilecek değerler dizisini fonksiyon parametreleri listesi olarak aktarabilirsiniz. Bu,
concat()` metoduna göre yeni bir dizi oluşturmak yerine diziye eleman ekleme avantajına sahiptir.Ancak, büyük diziler (100.000 veya daha fazla üye) için bu numara başarısız olabilir gibi görünüyor. Bu tür diziler için, bir döngü kullanmak daha iyi bir yaklaşımdır. Ayrıntılar için https://stackoverflow.com/a/17368101/96100 adresine bakın.
Bunu bir fonksiyon olarak genelleştirmek isteyebilirsiniz:
... veya
Array
'in prototipine ekleyin:... ya da
concat()
metodununpush()
gibi birden fazla parametreye izin verdiği gerçeğini kullanarak orijinalpush()
metodunu taklit edin:İşte son örneğin büyük diziler ve IE
Bu sorununuzu çözer mi?