javascript - (...Array([random number]).keys().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())
将所有键转换为字符串
推荐阅读
- c# - 获取:“文档将导致无效的 XML 文档”错误
- python - 父文件夹脚本 FileNotFoundError
- highcharts - 下载 highchart 时需要 Highchart 水印图像
- laravel - Laravel Dusk 测试的全局 CSS 选择器
- python - 在 Python 中管理日期
- docker - GCP 负载均衡器:502 服务器错误,“failed_to_connect_to_backend”
- apache-kafka - Kafka producer Bench-marking,无法理解结果
- apache-spark - Spark SQL嵌套查询 - 在另一个火花数据帧上选择带有过滤器的行 - ParseException
- tensorflow - TensorFlow 自定义对象检测训练速度
- html - 如何更改此导航栏的断点