【JavaScript】join – 配列の要素を結合して文字列に変換

JavaScriptで配列の要素を結合して文字列に変換したい場合、join()メソッドを使用します。今回は、join()の基本的な使い方から使用時の注意点までをまとめていきたいと思います。

join()メソッドとは?

join()メソッドは、配列の要素を指定した区切り文字で結合し、1つの文字列として返すメソッドです。

基本構文

JavaScript
array.join(separator);
パラメータ説明
separator(省略可能)要素を結合する際の区切り文字(デフォルトは ,

基本的な使い方

カンマ区切りで結合(デフォルトの動作)

JavaScript
const drinks = ['coffee', 'espresso', 'cappuccino'];
const result = drinks.join();

console.log(result); // 'coffee, espresso, cappuccino'

配列drinksの要素を,で区切って1つの文字列に結合します。デフォルトの区切り文字は ,です。

カスタム区切り文字を指定する

ハイフンで結合

JavaScript
const words = ['hello', 'world', 'JavaScript'];
const sentence = words.join('-');

console.log(sentence); // 'hello-world-JavaScript'

スペースで結合(単語の連結)

JavaScript
const words = ['Welcome', 'to', 'JavaScript'];
const sentence = words.join(' ');

console.log(sentence); // 'Welcome to JavaScript'

改行で結合(複数行の文字列)

JavaScript
const lines = ['Line 1', 'Line 2', 'Line 3'];
const multilineText = lines.join('\n');

console.log(multilineText);
/* 出力:
Line 1
Line 2
Line 3
*/

サンプルコード

数字をカンマ区切りの文字列に変換(CSV形式)

JavaScript
const numbers = [100, 200, 300, 400];
const csvString = numbers.join(',');

console.log(csvString); // '100,200,300,400'

URLパスの組み立て

JavaScript
const pathSegments = ['https:', '', 'example.com', 'page', 'index.html'];
const url = pathSegments.join('/');

console.log(url); // 'https://example.com/page/index.html'

HTMLリストの作成

JavaScript
const items = ['<li>Item 1</li>', '<li>Item 2</li>', '<li>Item 3</li>'];
const listHtml = `<ul>${items.join('')}</ul>`;

console.log(listHtml);
// 出力
<ul><li>Item 1</li><li>Item 2</li><li>Item 3</li></ul>

使用時の注意点

元の配列を変更しない

JavaScript
const arr = ['A', 'B', 'C'];
const result = arr.join('-');

console.log(arr); // A, B, C(元の配列はそのまま)
console.log(result); // 'A-B-C'

join()元の配列を変更せず、新しい文字列を返します。

空の配列にも適用可能

JavaScript
console.log([].join()); // 空の文字列
console.log([].join('-')); // 空の文字列

空の配列にjoin()を適用すると、空の文字列''が返ります

nullやundefinedは空文字列として処理される

JavaScript
const data = ['a', null, 'b', undefined, 'c'];

console.log(data.join('-')); // 'a--b--c'

nullundefinedの要素はjoin()を適用すると、空文字列''に変換される