Я собираюсь показать несколько различных способов перебора символов в строке str
, используя только встроенную функциональность JavaScript.
Обычная петля
Старый добрый путь ES3. Это будет работать в старых браузерах, как IE 6.
for (var i = 0; i < str.length; ++i) {
var chr = str.charAt(i);
alert(chr);
}
forEach на разделенном массиве
ES5 совместимый.
str.split('').forEach(function (chr) {
console.log(chr);
});
forEach on string
ES5 совместимый. Будет работать немного быстрее, чем предыдущий метод для больших строк.
Array.prototype.forEach.call(str, function (chr) {
console.log(chr);
});
для цикла
Работает только в новых браузерах. Требуется поддержка ES6.
for (var chr of str) {
console.log(chr);
}
Как примечание, в некоторых распространенных случаях массовые операции над символами в строке лучше выполнять без итерации с использованием парадигм функционального программирования.
Например, для извлечения массива из символов в строке достаточно str.split('')
или с синтаксисом ES6 [...str]
.
Чтобы отобразить символы в строке, такие как элементы массива, гораздо лучше вызвать Array.prototype.map
непосредственно в строке:
Array.prototype.map.call(str, function (chr) {
return '<img src="' + chr + '.png" />';
});