SORU
11 AĞUSTOS 2011, PERŞEMBE


JavaScript n boyutlu parçalar halinde büyük bir dize bölmek

Çok büyük bir dize (diyelim, 10,000 karakter) N boyutlu parçalara bölmek istiyorum.

Bunu yapmak için performans açısından en iyi yolu ne olurdu?

Örneğin: "1234567890" 2 bölme ["12", "34", "56", "78", "90"] olacak.

Böyle bir şey mümkün, bu performans açısından bunu yapmak için en iyi yol olacağını eğer öyleyse String.prototype.match ve kullanıyordur.

CEVAP
11 AĞUSTOS 2011, PERŞEMBE


Böyle bir şey yapabilirsiniz:

"1234567890".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "90"]

Bu yöntem hala parça-boyutu: tam katı olmayan dizeleri ile çalışır

"123456789".match(/.{1,2}/g);
// Results in:
["12", "34", "56", "78", "9"]

Ayıklamak için istediğiniz herhangi bir dize için genel olarak, en-ennboyutlu dizeleri.

str.match(/.{1,n}/g); // Replace n with the size of the substring

Eğer dize veya yeni satır başları içerebilir eğer.

str.match(/(.|[\r\n]){1,n}/g); // Replace n with the size of the substring

Bildiğim kadarıyla performans olarak, bu yaklaşık 10 bin karakter ile denedim ve Chrome üzerinde bir saniye biraz fazla sürdü. YMMV.

Bu da yeniden bir işlev için kullanılabilir:

function chunkString(str, length) {
  return str.match(new RegExp('.{1,'   length   '}', 'g'));
}

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • BioHunta

    BioHunta

    28 Mayıs 2006
  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • Maschine Tutorials

    Maschine Tut

    15 ŞUBAT 2011