ECMAScript の仕様に従うのであれば、文字列内の任意の位置の文字を取得するには charAt()
を使用します。
var s = 'ABCDE';
console.log(s.charAt(2)); //=> 'C'
ただ、JavaScript の独自拡張では、以下のように数値プロパティで任意の位置の文字を取り出せますので、環境依存のコードでもよいのであれば、こちらのシンプルな方法もありです。
console.log(s[2]); //=> 'C'
文字列の長さだけ for ループを回せば、文字列内の文字を1文字ずつ処理することができます。
var s = 'ABCDE';
for (var i = 0; i < s.length; ++i) {
console.log((i + 1) + '文字目: ' + s.charAt(i));
}
1文字目: A
2文字目: B
3文字目: C
4文字目: D
5文字目: E
split
メソッドで1文字ずつの配列に分割してしまってから、その配列をループ処理するという方法もありますね。
var s = 'ABCDE';
var arr = s.split('');
for (var i = 0; i < arr.length; ++i) {
console.log((i + 1) + '文字目: ' + arr[i]);
}
JavaScript の文字列は不変 (immutable) なので、以下のように文字列内の1文字を変更するような操作はできません。
s[2] = 'X'; // NG