文字列のn番目の文字を取得したい
さあ今回もJavaScript学習中に気付いたことの備忘録を書きますよ。
初心者の人、いっしょにがんばりましょう。
今回は、文字列のn番目の文字を取得する方法です。
例えば、
var moji = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
と言う変数mojiが定義されているとします。
単にアルファベットのABCが並んでいる文字列です。
この中から、左から5番目の文字だけを取り出すにはどうするでしょうか。
ボクも初心者なので、最初から勉強しています。
もちろん、メソッドを使うんでしょう。
n番目の文字を取り出すメソッドは、ズバリ、
charAt(n)
ですね。
なので、
var moji = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var s = moji.charAt(4);
とやれば、5番目の文字がsに入ります。0から始まるので、5番目の場合は4を入れるんですね。
もっとカンタンに
実は、この話は、これで正解なので終われるんですが、某有名学習サイトで、全然違うやり方に遭遇して戸惑っています。
どの参考書を見ても上記のやり方ばかり。
しかし、ボクが遭遇したのは、次のやり方。
var moji = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var s = moji[4];
そうです。角括弧に数字を入れるだけ。
角括弧と言えば、配列を思い出します。
例えば、
var abc = ["A","B","C","D","E","F"];
と言う配列なら、
abc[4]
はEですよね。
ところが上記のように、長い文字列でも、配列と同じように数字でn番目の文字が取り出せるんですよね。
これって、どこかの教科書に載ってるんですか?
いろいろ探してみたんですが、具体的に説明しているサイトが見当たらなくて。
中級以上の人には常識なんですかね?
とにかく、複数文字の文字列の場合、変数に角括弧でn番目の文字を取り出せる。
※そして、さらに調べていくと、この方法はどうやら非標準のようです。
n番目の文字を取り出すにはcharaAtメソッドを使いましょうってことですね。
有名サイトで学習したら、非標準のやり方で回答が示されていた。
ただし、ボクがそれに疑問を持って、こうやって調べたってことは、ボク自身は成長しているってことですかね。
文字列なのに、まるで配列のようにアクセスできるんだ、と言う疑問。
以前なら、何の疑問も持たずに、暗記してしまっていたかもしれませんから。
と言うわけで奥が深いプログラミングの世界。
引き続き学習を続けます。
※ツイートしたら、かの小飼弾さんから、返信が!
ES5で公式になってる。もう6年以上前https://t.co/3a10DWcdKI
— Dan Kogai (@dankogai) 2018年4月22日
と言うわけで、右往左往しましたが、今は正式に、
moji[4]
が使えるそうです。
良かった!