##配列に見えて、そうでない文字列
問題
文字列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(" ");
の紹介でした。