新人日誌11
- 2019年4月17日
- 他の話題
Javascriptでカンマ区切りの文字列を配列にし、
abc順に並び替えて再度カンマ区切りの文字列にしてみました。
//元になる文字列データ
var data = "strawberry,banana,tomato,apple";
並び替える前のデータは、このabc順でバラバラなカンマ区切りの文字列です。

このデータをカンマごとに分割した文字列の配列にします。
そのためにsplit()メソッドを使います。引数に’,’を渡し、カンマごとに分割します。
//配列化
var dataArray = data.split(',');
これで変数dataArrayの中に分割された後の文字列の配列が入りました。
ログに出して確認してみます。
for (let i = 0; i < dataArray.length; i++) {
console.log((i + 1) + '番目のフルーツは :' + dataArray[i] + "です。");
}

この配列をabc順に並び替えます。
そのために、sortメソッドを使用します。
//abc順に並び替え
dataArray.sort(function (a, b) {
//小文字に揃えて比較
a = a.toString().toLowerCase();
b = b.toString().toLowerCase();
if (b > a) {
return -1;
} else {
return 1;
}
return 0;
});
Sortメソッドの引数の無名関数は各要素を比較するための処理です。
再度配列の内容を表示してみます。
for (let i = 0; i < dataArray.length; i++) {
console.log((i + 1) + '番目のフルーツは :' + dataArray[i] + " です。");
}

最後にカンマ区切りの文字列データに戻します。
配列を特定の区切り文字で文字列化するために.join()メソッドを使います。
引数は区切り文字です。
data = dataArray.join(',');

この文字列の並び替え処理は多くの 場面で使いそうです。
水曜担当:Tanaka
tanaka at 2019年04月17日 10:00:02