配列.join() / 文字列.split()
| 対応: | ES1(ECMAScript 1997) |
|---|
配列と文字列を相互に変換するメソッドです。『join()』は配列を文字列に、『split()』は文字列を配列に変換します。
構文
// 配列の要素を区切り文字で連結して文字列にします。 var str = 配列.join(区切り文字); // 文字列を区切り文字で分割して配列にします。 var arr = 文字列.split(区切り文字, 最大数);
メソッド一覧
| メソッド | 概要 |
|---|---|
| 配列.join(区切り文字) | 配列のすべての要素を指定した区切り文字で連結し、1つの文字列にして返します。区切り文字を省略すると『,』が使用されます。 |
| 文字列.split(区切り文字, 最大数) | 文字列を指定した区切り文字で分割し、配列にして返します。最大数を指定すると、返される配列の要素数を制限できます。 |
サンプルコード
sample_join.js
// 配列を文字列に変換します。
var inspectors = ["狡噛慎也", "常守朱", "宜野座伸元"];
console.log(inspectors.join(", ")); // 『狡噛慎也, 常守朱, 宜野座伸元』と出力されます。
console.log(inspectors.join("-")); // 『狡噛慎也-常守朱-宜野座伸元』と出力されます。
console.log(inspectors.join("")); // 『狡噛慎也常守朱宜野座伸元』と出力されます。区切り文字なしです。
console.log(inspectors.join()); // 『狡噛慎也,常守朱,宜野座伸元』と出力されます。省略時はカンマです。
// 文字列を配列に変換します。
var csv = "狡噛慎也,常守朱,宜野座伸元";
var names = csv.split(",");
console.log(names); // 『狡噛慎也,常守朱,宜野座伸元』と出力されます。配列です。
// 1文字ずつ分割します。
var chars = "Hello".split("");
console.log(chars); // 『H,e,l,l,o』と出力されます。
// 最大数を指定します。
var parts = "a-b-c-d-e".split("-", 3);
console.log(parts); // 『a,b,c』と出力されます。最初の3つだけです。
// joinとsplitを組み合わせて文字列を置換します。
var text = "狡噛慎也は執行官だ";
var replaced = text.split("執行官").join("エンフォーサー");
console.log(replaced); // 『狡噛慎也はエンフォーサーだ』と出力されます。
狡噛慎也, 常守朱, 宜野座伸元 狡噛慎也-常守朱-宜野座伸元 狡噛慎也常守朱宜野座伸元 狡噛慎也,常守朱,宜野座伸元 [ '狡噛慎也', '常守朱', '宜野座伸元' ] [ 'H', 'e', 'l', 'l', 'o' ] [ 'a', 'b', 'c' ] 狡噛慎也はエンフォーサーだ
概要
『配列.join()』と『文字列.split()』は配列と文字列を相互に変換する対になるメソッドです。CSVデータの処理、パスの組み立て、単語の分割・結合など、文字列操作の基本としてさまざまな場面で活用されます。
『配列.join()』は配列の要素に『null』や『undefined』が含まれている場合、それらは空文字列として扱われます。区切り文字に空文字列を指定すると、すべての要素がそのまま連結されます。HTMLの生成では、配列に入れたタグ文字列を『join("")』で結合するテクニックがよく使われます。
『文字列.split()』の区切り文字には正規表現も指定できます。例えば『"a1b2c3".split(/[0-9]/)』はすべての数字で分割し、『["a", "b", "c", ""]』を返します。引数に空文字列を指定すると1文字ずつの配列になりますが、サロゲートペア(絵文字など)は正しく分割されないため注意が必要です。
対応ブラウザ
デスクトップ
4.5 以前 ×
3 以前 ×モバイル
Android Browser
37 以降 ○
Chrome Android
36 以降 ○
17 以前 ×
Firefox Android
79 以降 ○
3 以前 ×記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。