splitメソッド
splitメソッドは、
文字列を1番目のパラメータで指定された
区切り文字に基づいて配列に分割します。
指定されない場合、文字列全体が返されます。
空の引用符として指定された場合、
文字列の各文字が配列の個別の要素になります。
2番目のオプションパラメータとして、
結果の配列の最大要素数を指定できます。
構文
文字列.split([区切り文字], [最大要素数]);
例
ハイフンを含む文字列があるとします。
区切り文字'-'に基づいて
この文字列を配列に分割してみましょう:
let str = 'ab-cd-ef';
let arr = str.split('-');
console.log(arr);
実行結果:
['ab', 'cd', 'ef']
例
再び区切り文字'-'に基づいて文字列を分割しますが、
2番目のパラメータとして結果の配列の最大要素数、
例えば2を指定します。この場合、
配列には2つの要素のみが書き込まれます:
let str = 'ab-cd-ef';
let arr = str.split('-', 2);
console.log(arr);
実行結果:
['ab', 'cd']
例
文字列の各文字を個別の配列要素に書き込んでみましょう:
let str = 'abcde';
let arr = str.split('');
console.log(arr);
実行結果:
['a', 'b', 'c', 'd', 'e']
例
文字列の最初の3文字を
個別の配列要素に書き込んでみましょう:
let str = 'abcde';
let arr = str.split('', 3);
console.log(arr);
実行結果:
['a', 'b', 'c']
例
splitを使用して数字を含む文字列を分割してみましょう。
結果は数値の配列ではなく、文字列の配列になることに注意してください:
let str = '12345';
let arr = str.split('');
console.log(arr);
実行結果:
['1', '2', '3', '4', '5']
例 . 応用
文字列の文字を逆順に並べ替えてみましょう。
そのために、区切り文字''を使用して
splitで文字列を配列に分割します
(これにより文字列の各文字が個別の配列要素になります)、
reverseで
この配列を反転させ、次にjoinで
反転した配列を再度結合します:
let str = '123456789';
let arr1 = str.split('');
let arr2 = arr1.reverse();
let res = arr2.join('');
console.log(res);
実行結果:
'987654321'
例 . 応用
前のタスクの解決策を簡略化します - すべてのコマンドをチェーンにまとめます:
let str = '123456789';
let res = str.split('').reverse().join('');
console.log(res);
実行結果:
'987654321'
例 . 応用
数字を含む文字列があります。この文字列の数字の合計を求めてみましょう。
そのために文字列を配列に分割し、次にこの配列をループして合計を求めます。
落とし穴が待っています:splitは文字列を返すため、
合計する際にNumberを使用してこれらの文字列の数字を実際の数値に変換します:
let str = '12345';
let arr = str.split('');
let sum = 0;
for (let i = 0; i < arr.length; i++) {
sum += Number(arr[i]);
}
console.log(sum);
実行結果:
15
例 . 応用
数値があります。この数値の各桁を
個別の配列要素に書き込んでみましょう。
ここに落とし穴があります - splitは
文字列にのみ適用されますが、私たちが持っているのは数値です。
まずStringを使用して数値を文字列に変換し、
次にsplitを適用します:
let num = 12345;
let str = String(num);
let arr = str.split('');
console.log(arr);
実行結果:
['1', '2', '3', '4', '5']