Array.prototype.join()

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

join() 方法是 Array 例項的一個方法,它透過將陣列中的所有元素連線成一個字串,並由逗號或指定的字串分隔,來建立並返回一個新的字串。如果陣列只有一個元素,則只返回該元素,不使用分隔符。

試一試

const elements = ["Fire", "Air", "Water"];

console.log(elements.join());
// Expected output: "Fire,Air,Water"

console.log(elements.join(""));
// Expected output: "FireAirWater"

console.log(elements.join("-"));
// Expected output: "Fire-Air-Water"

語法

js
join()
join(separator)

引數

separator 可選

用於分隔陣列中相鄰元素對的字串。如果省略,陣列元素將使用逗號(",")分隔。

返回值

所有陣列元素連線而成的字串。如果 array.length0,則返回空字串。

描述

所有陣列元素的字串表示形式連線成一個字串。如果元素是 undefinednull,則將其轉換為空字串,而不是字串 "null""undefined"

join 方法由 Array.prototype.toString() 在內部呼叫,不帶任何引數。覆蓋陣列例項的 join 方法也會覆蓋其 toString 的行為。

Array.prototype.join 會遞迴地將每個元素(包括其他陣列)轉換為字串。由於 Array.prototype.toString 返回的字串(與呼叫 join() 相同)沒有分隔符,巢狀的陣列看起來就像被展平了一樣。你只能控制第一層的分隔符,更深層的巢狀陣列始終使用預設的逗號。

js
const matrix = [
  [1, 2, 3],
  [4, 5, 6],
  [7, 8, 9],
];

console.log(matrix.join()); // 1,2,3,4,5,6,7,8,9
console.log(matrix.join(";")); // 1,2,3;4,5,6;7,8,9

當陣列包含迴圈引用(即陣列中有一個元素是它自身)時,瀏覽器會透過忽略迴圈引用來避免無限遞迴。

js
const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.join(";")); // 1;3,,4;2

稀疏陣列 上使用時,join() 方法會將空槽視為具有 undefined 值進行迭代。

join() 方法是 通用的。它只期望 this 值具有 length 屬性和整數鍵屬性。

示例

四種不同的連線陣列方式

以下示例建立一個包含三個元素的陣列 a,然後將該陣列連線四次:使用預設分隔符,然後是逗號和空格,然後是加號,最後是空字串。

js
const a = ["Wind", "Water", "Fire"];
a.join(); // 'Wind,Water,Fire'
a.join(", "); // 'Wind, Water, Fire'
a.join(" + "); // 'Wind + Water + Fire'
a.join(""); // 'WindWaterFire'

在稀疏陣列上使用 join()

join() 將空槽視為 undefined,併產生額外的分隔符

js
console.log([1, , 3].join()); // '1,,3'
console.log([1, undefined, 3].join()); // '1,,3'

在非陣列物件上呼叫 join()

join() 方法讀取 thislength 屬性,然後訪問鍵小於 length 的所有非負整數鍵的屬性。

js
const arrayLike = {
  length: 3,
  0: 2,
  1: 3,
  2: 4,
  3: 5, // ignored by join() since length is 3
};
console.log(Array.prototype.join.call(arrayLike));
// 2,3,4
console.log(Array.prototype.join.call(arrayLike, "."));
// 2.3.4

規範

規範
ECMAScript® 2026 語言規範
# sec-array.prototype.join

瀏覽器相容性

另見