代码输出:
const arr = [1, 2, 3, 4, 5];
console.log([...arr + []]);
给予
[ '1', ',', '2', ',', '3', ',', '4', ',', '5' ]
我知道...arr
将返回数组项(例如1 2 3 4 5),而number + []
给出了字符串,但是我真的对为什么将,
添加到输出数组感到困惑
是因为...arr
中的console.log()
原来是[..."1, 2, 3, 4, 5" + []]
,其中输出是相同的吗?
还是我不知道的一些神奇的解释?
答案 0 :(得分:2)
Here是对应用于数组的+
运算符的解释。那么会发生什么:
arr + []
给您一个字符串"1,2,3,4,5"
答案 1 :(得分:1)
添加Nurbol的答案
const arr = [1, 2, 3, 4, 5];
console.log([...arr + []]);
它将变成一个字符串,数组中的每个元素都将其转换为字符串。由于逗号也在此处,因此它将成为字符串数组的元素。
当您这样做时
const arr = [1, 2, 3, 4, 5];
console.log((arr + []).split())
它将创建该数组的单个字符串,然后创建一个指定分割点的字符串数组。
答案 2 :(得分:0)
array.toString()
在每个元素后添加,
const a = [1, 2, 3, 4, 5]
console.log(a.toString())
// -> '1,2,3,4,5'
console.log([...a.toString()])
// -> [ '1', ',', '2', ',', '3', ',', '4', ',', '5' ]
[...aray + []]
将数组转换为字符串,然后添加空字符串,然后使用[...resultString]
生成结果