(...Array([random number]).keys().toString()) 为什么这个表达式的长度和值总是给出相同的结果?
(...Array([random number]).keys().toString()) why the length and values of this expression always gives the same result?
在Javascript中,使用扩展运算符我们可以迭代数组。
[...Array(5).keys()]
这给出了结果 ->
[0,1,2,3,4]
当我尝试将这些数字转换为字符串时
[...Array(5).keys().toString()]
这给出了结果 ->
["[", "o", "b", "j", "e", "c", "t", " ", "A", "r", "r", "a", "y", " ", "I", "t", "e", "r", "a", "t", "o", "r", "]"]
[...Array(10).keys().toString()]
这也给出了与上面相同的结果。
为什么会这样?
Array(5).keys()
是一个数组迭代器。当你这样做时
[...Array(5).keys().toString()]
您没有将键转换为字符串,但您正在尝试将迭代器转换为字符串,这会为您提供“[object Array Iterator]”作为字符数组。
您需要做的:
[...Array(5).keys()].map(k => k.toString())
将所有键转换为字符串
在Javascript中,使用扩展运算符我们可以迭代数组。
[...Array(5).keys()]
这给出了结果 ->
[0,1,2,3,4]
当我尝试将这些数字转换为字符串时
[...Array(5).keys().toString()]
这给出了结果 ->
["[", "o", "b", "j", "e", "c", "t", " ", "A", "r", "r", "a", "y", " ", "I", "t", "e", "r", "a", "t", "o", "r", "]"]
[...Array(10).keys().toString()]
这也给出了与上面相同的结果。
为什么会这样?
Array(5).keys()
是一个数组迭代器。当你这样做时
[...Array(5).keys().toString()]
您没有将键转换为字符串,但您正在尝试将迭代器转换为字符串,这会为您提供“[object Array Iterator]”作为字符数组。
您需要做的:
[...Array(5).keys()].map(k => k.toString())
将所有键转换为字符串