JavaScript split() 添加额外的逗号?

标签 javascript

这让我有点困惑。我不知道为什么会发生这种情况,但它破坏了我正在尝试创建的程序。

基本上,我有一个 var array = []。这个数组称为wordswords 的内容为

var words = ["apple","banana","grape","orange","kiwi","cherry", "strawberry","plum"]

当我尝试将其拆分为:

var split = words.toString().split(" ");

它正确地分割每个单词(“apple,banana,etc”)。

无论如何:

var split = words.toString().split("");
alert(split)

给我“a,p,p,l,e,,,b,a,n,a,n,a,,,g,r,a,p,e,,等”。为什么要这样做?

编辑

我不知道为什么它会在每个单词中添加 "a,p,p,l,e,,,..." 以及额外的逗号。

最佳答案

words.toString()

给出

"apple,banana,grape,orange,kiwi,cherry,strawberry,plum"

因为数组上的 toString() 构建了一个可读的表示形式,并用逗号分隔元素。

如果你用 .split("") 将其分割成字符,你会得到

["a", "p", "p", "l", "e", ",", "b", ...

请注意,其中一些元素是 "," 因为您已经分割了包含逗号的字符串。

如果你警告它,你就隐式地在该数组上执行了一个额外的toString(),这给出了

"a,p,p,l,e,,,b,a ...

如果目的是调试,请勿使用 alert 而是使用 console.log(您可以在大多数浏览器上使用 F12 访问控制台)。

如果您的目标是获取包含单词所有字母的数组,您可以使用

var letters = [].concat.apply([], words.map(function(v){ return v.split('') }));

关于JavaScript split() 添加额外的逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30508242/

相关文章:

javascript - map 未使用 d3.js 加载?

javascript - 在等待 HTTPS 请求时,事件循环被卡住并且不会响应健康检查 - NodeJS+kubernetes

javascript - 调用驻留在不同文件夹中的 javascript 文件

javascript - shopify 和 instafeed.js 兼容性问题

javascript - 无法使用 Google App 脚本打开 FilePicker

javascript - 如何在显示下拉菜单项时使导航栏响应

javascript - 谷歌图表时间轴 - 无法读取 null 的属性长度

javascript - 获取 Jasmine 测试报告器输出到指定的页面元素

javascript - 从nodejs中的mongoDB查询返回数据

javascript - 如何同步使用localForage