← 返回首页
Array.prototype.join() - JavaScript | MDN

此页面由社区从英文翻译而来。了解更多并加入 MDN Web Docs 社区。

View in English Always switch to English

Array.prototype.join()

基线 广泛可用

自 2015年7月 起,此特性已在主流浏览器中得到支持,可在大多数设备和浏览器版本中正常使用。

join() 方法将一个数组(或一个类数组对象)的所有元素连接成一个字符串并返回这个字符串,用逗号或指定的分隔符字符串分隔。如果数组只有一个元素,那么将返回该元素而不使用分隔符。

本文内容

尝试一下

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 可选

指定一个字符串来分隔数组的每个元素。如果需要,将分隔符转换为字符串。如果省略,数组元素用逗号(,)分隔。如果 separator 是空字符串(""),则所有元素之间都没有任何字符。

返回值

一个所有数组元素连接的字符串。如果 arr.length 为 0,则返回空字符串。

描述

所有数组元素被转换成字符串并连接到一个字符串中。如果一个元素是 undefined 或 null,它将被转换为空字符串,而不是字符串 "undefined" 或 "null"。

Array.prototype.toString() 会在内部访问 join 方法,不带参数。覆盖一个数组实例的 join 也将覆盖它的 toString 行为。

当在稀疏数组上使用时,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() 方法读取 this 的 length 属性,然后访问每个整数索引。

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

规范

规范
ECMAScript® 2027 Language Specification
# sec-array.prototype.join

浏览器兼容性

启用 JavaScript 以查看此浏览器兼容性表。

参见