LoginSignup
3

More than 5 years have passed since last update.

文字列を配列にする方法

Posted at

配列に見えて、そうでない文字列

問題
文字列Sには、料理のさしすせそ「砂糖、塩、酢、醤油、味噌」が順番に入力されている。この文字列を「砂糖→塩→酢→醤油→味噌」と表示をしてください。

仮に、こういう問題が出てきたとき、文字列Sの長さ分for文でやっていけばいいと見えます。

var s = "砂糖、塩、酢、醤油、味噌";
for (var i =0; i < s.length; i++) {
   document.write(s[i]);
};

これだと、砂糖、塩、酢、醤油、味噌と表示されます。しかし、

var s = "砂糖、塩、酢、醤油、味噌";
for (var i =0; i < s.length; i++) {
   document.write(s[i]+"");
};

とすると、砂→糖→、→塩→、→酢→、→醤→油→、→味→噌→となります。へんてこな答えになってしまいました。

文字列を配列にする

そこで、変数.split("区切りたい文字、改行などの記号")を使うと、文字列を配列にすることができます。

var s = "砂糖、塩、酢、醤油、味噌";
var c = s.split("");//「、」毎に取り出す。
for (var i =0; i < c.length; i++) {0 = i < 5
    if(i <= (c.length-2)){//c[0]→c[1]→c[2]→c[3]→c[4]とするので、c[3(5-2)]まで。
   document.write(c[i]+"");
} else {
    document.write(c[i]);
}
};

これで、砂糖→塩→酢→醤油→味噌と表示させることができました。ポイントは、var c = s.split("、");で、区切った数だけc[0]、c[1]、C[2]・・・と配列で取り出していることです。

さらには、数値変換も

数字の文字列だったら、配列で取り出したあとにNumber(配列[i]);で、数値に変換することもできます。これで、数字の大小の比較、計算ができます。

まとめ

僕が苦労した、配列に見えてそうでない文字列を配列にするための変換.split(" ");の紹介でした。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3