Javascript 新的 Array 和 join() 方法
Javascript new Array and join() method
受到这个流行演讲的启发,我想找出一些与创建数组相关的问题。假设我正在使用以下命令创建新数组:
Array(3)
在控制台中,我得到:
[undefined, undefined, undefined]
这是很明显的。假设我正在加入该阵列:
Array(3).join()
作为回应,我得到:
",,"
这也是可以理解的,因为我想这是三个空字符串,用逗号分隔。但是当我尝试做时:
Array(3).join("lorem")
我得到的字符串只有两次重复的"lorem":
"loremlorem"
为什么这个词有两次,而不是三次重复?
join
使用作为连接器传递的内容将这些元素连接在一起。所以你有三个空字符串"包围"lorem
s:
|lorem|lorem|
如果您不使用空数组,可能会更明显一些:
var arr = [1, 2, 3, 4, 5]; // Like Array(5), except not sparse
arr.join('-and-'); // 1-and-2-and-3-and-4-and-5
顺便说一下,您的第一个示例join
输出不正确。它应该是,,
或",,"
.(取决于输出格式。
Join 需要一个分隔符。"lorem"取代了以前的逗号。
Join 将数组中的元素与指定的分隔符组合在一起。
因此,由于有 3 个元素,因此您只需要 2 个分隔符(在第 1 和第 2 之间,以及第 2 和第 3 之间(。
var a = [1,2,3];
a.join(','); //1,2,3
a.join('test'); // 1test2test3
查看联接文档。
要传递给联接函数的内容将用作数组元素之间的分隔符。当您使用 Array(3)
声明数组时,您将创建一个包含三个元素的数组。join 方法在这些元素之间插入分隔符,因此您只会看到两个"lorem"。
实际上,你看到的是:blank lorem blank lorem blank
。其中空白是数组的空元素。
尝试执行以下操作:
var fruits = ["banana", "orange", "apple"]
fruits.join("lorem")
它将打印
bananaloremorangeloremapple
如果你有一个包含 3 个成员的数组,则.join
是成员之间的填充物,因此应该只有两个连接字符串。
因此,您的第二个输出是正确的。
您使用 .join()
的第一个输出似乎是显示错误或测试代码的虚假陈述。
.join()
的默认值是 ","
,因此:
new Array(3).join();
应该给你这个:
",,"
您显示的输出:
[, ,]
更有可能来自只是在没有.join()
的console
中键入new Array(3)
.
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- 数组在递归方法中设置为null
- 打破承诺链的好方法是什么
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 使用“;这个“;JavaScript原型方法中的关键字
- 序列化数据属性中对象的最可靠方法
- 使用Objective-C的JavaScript注入方法
- 有没有一种方法可以添加相同的项目val=“0”;4〃;到JavaScript中数组的每个对象
- 有没有一种方法可以防止img get请求使用css或js发生
- Javascript,有没有一种方法可以将数组写成没有逗号或空格的单个文本字符串
- toBoolean方法类似于toString
- 如何在单击复选框后调用控制器方法
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- Javascript 新的 Array 和 join() 方法
- E4X中是否有一种方法可以将基元数据类型的XMLList转换为类似于Array.join()的Array
- 使用.join方法将数组转换为不带逗号的字符串
- Join()方法只将一些数组转换为字符串
- 为什么join()方法返回的结果与预期不同
- .join方法在Javascript中将数组更改为字符串吗?