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.