Her metin mektubu nasıl işlenir (kıyaslamalarla)
https://jsperf.com/str-for-in-of-foreach-map-2
için
Klasik ve açık ara en yüksek performansa sahip olanı . Performans açısından kritik bir algoritmada kullanmayı planlıyorsanız veya tarayıcı sürümleriyle maksimum uyumluluk gerektiriyorsa, bununla gitmelisiniz.
for (var i = 0; i < str.length; i++) {
console.info(str[i]);
}
Türk pazarına ...
için ... yineleyici için yeni ES6 . Çoğu modern tarayıcı tarafından desteklenir. Görsel olarak daha çekici ve yazım hatalarına daha az eğilimlidir. Bunu bir üretim uygulamasında yapacaksanız, muhtemelen Babel gibi bir transpiler kullanmalısınız .
let result = '';
for (let letter of str) {
result += letter;
}
her biri için
İşlevsel yaklaşım. Airbnb onayladı . Bunu bu şekilde yapmanın en büyük dezavantajı split()
, dizenin her harfini saklamak için yeni bir dizi yaratır.
Neden? Bu değişmez kuralımızı zorlar. Değerleri döndüren saf işlevlerle başa çıkmak, yan etkilerden daha kolaydır.
// ES6 version.
let result = '';
str.split('').forEach(letter => {
result += letter;
});
veya
var result = '';
str.split('').forEach(function(letter) {
result += letter;
});
Sevmediğim şeyler aşağıdadır.
için ... lütfen
... için farklı olarak, harf yerine harf dizinini alırsınız. Oldukça kötü bir performans sergiliyor.
var result = '';
for (var letterIndex in str) {
result += str[letterIndex];
}
map
İyi olan fonksiyon yaklaşımı. Ancak, haritanın bunun için kullanılması amaçlanmamıştır. Bir dizinin içindeki değerleri değiştirmek gerektiğinde kullanılmalıdır (durum böyle değildir).
// ES6 version.
var result = '';
str.split('').map(letter => {
result += letter;
});
veya
let result = '';
str.split('').map(function(letter) {
result += letter;
});
for(const c of str) { ... }
. Bunlardan daha fazlası, oldukça ayrıntılı ancak yeterince yükseltilmemiş bir cevapta. Not: @ ARJUN'un bağlantısı benim için çalışmıyor.