Array.prototype.join()

join() メソッドは、配列(または配列風オブジェクト)の全要素を順に連結した文字列を新たに作成して返します。区切り文字はカンマ、または指定された文字列です。配列にアイテムが一つしかない場合は、区切り文字を使用せずにアイテムが返されます。

試してみましょう

構文

join()
join(separator)

引数

separator 省略可

配列の各要素を区切る文字列を指定します。 separator は、必要であれば文字列に変換されます。省略した場合、配列の要素はカンマ (",") で区切られます。 separator に空文字列を渡した場合、すべての要素の間が区切り文字無しで繋がれます。

返値

配列の全要素が連結された文字列です。 arr.length0 だった場合、空の文字列が返されます。

解説

配列のすべての要素を文字列に変換したものが、1 個の文字列に繋がれます。

警告: 要素が undefined または null または空配列 [] であった場合は、空の文字列に変換されます。

join メソッドは、内部的には Array.prototype.toString() によって引数なしでアクセスすることができます。配列インスタンスの join をオーバーライドすると、その toString の動作もオーバーライドされます。

3 通りの異なる形で配列をつなぐ

以下の例は、3 個の要素を持つ配列 a を作成し、デフォルト引数、カンマとスペース、そして「と」と空文字を使った 4 パターンの結合を行っています。

const a = ['風', '水', '火'];
a.join();      // '風,水,火'
a.join(', ');  // '風, 水, 火'
a.join(' + '); // '風 + 水 + 火'
a.join('');    // '風水火'

配列風オブジェクトを連結する

次の例は、配列風オブジェクト ( arguments )を連結するために、 Array.prototype.joinFunction.prototype.call を使用して呼び出します。

function f(a, b, c) {
  const s = Array.prototype.join.call(arguments);
  console.log(s); // '1,a,true'
}
f(1, 'a', true);
//expected output: "1,a,true"

仕様書

Specification
ECMAScript Language Specification
# sec-array.prototype.join

ブラウザーの互換性

BCD tables only load in the browser

関連情報