Array.prototype.join()
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"
語法
join()
join(separator)
引數
separator可選-
用於分隔陣列中相鄰元素對的字串。如果省略,陣列元素將使用逗號(",")分隔。
返回值
所有陣列元素連線而成的字串。如果 array.length 為 0,則返回空字串。
描述
所有陣列元素的字串表示形式連線成一個字串。如果元素是 undefined 或 null,則將其轉換為空字串,而不是字串 "null" 或 "undefined"。
join 方法由 Array.prototype.toString() 在內部呼叫,不帶任何引數。覆蓋陣列例項的 join 方法也會覆蓋其 toString 的行為。
Array.prototype.join 會遞迴地將每個元素(包括其他陣列)轉換為字串。由於 Array.prototype.toString 返回的字串(與呼叫 join() 相同)沒有分隔符,巢狀的陣列看起來就像被展平了一樣。你只能控制第一層的分隔符,更深層的巢狀陣列始終使用預設的逗號。
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
當陣列包含迴圈引用(即陣列中有一個元素是它自身)時,瀏覽器會透過忽略迴圈引用來避免無限遞迴。
const arr = [];
arr.push(1, [3, arr, 4], 2);
console.log(arr.join(";")); // 1;3,,4;2
在 稀疏陣列 上使用時,join() 方法會將空槽視為具有 undefined 值進行迭代。
join() 方法是 通用的。它只期望 this 值具有 length 屬性和整數鍵屬性。
示例
四種不同的連線陣列方式
以下示例建立一個包含三個元素的陣列 a,然後將該陣列連線四次:使用預設分隔符,然後是逗號和空格,然後是加號,最後是空字串。
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,併產生額外的分隔符
console.log([1, , 3].join()); // '1,,3'
console.log([1, undefined, 3].join()); // '1,,3'
在非陣列物件上呼叫 join()
join() 方法讀取 this 的 length 屬性,然後訪問鍵小於 length 的所有非負整數鍵的屬性。
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 |
瀏覽器相容性
載入中…