这让我很困惑.我不知道为什么会这样,但它正在破坏我正在尝试创建的程序.
基本上,我有一个var array = [].这array叫做words.words有的内容
var words = ["apple","banana","grape","orange","kiwi","cherry", "strawberry","plum"]
Run Code Online (Sandbox Code Playgroud)
当我尝试拆分时:
var split = words.toString().split(" ");
Run Code Online (Sandbox Code Playgroud)
它正确地分割每个单词("apple,banana,etc").
无论如何:
var split = words.toString().split("");
alert(split)
Run Code Online (Sandbox Code Playgroud)
给了我"a,p,p,l,e,,,b,a,n,a,n,a,,,g,r,a,p,e,,, etc".它为什么这样做?
我不知道为什么"a,p,p,l,e,,,..."每个单词都添加额外的逗号.
Den*_*ret 11
words.toString()
Run Code Online (Sandbox Code Playgroud)
给
"apple,banana,grape,orange,kiwi,cherry,strawberry,plum"
Run Code Online (Sandbox Code Playgroud)
因为toString()在数组上构建一个可读的表示形式,用逗号分隔元素.
如果你用字符分割.split(""),你得到
["a", "p", "p", "l", "e", ",", "b", ...
Run Code Online (Sandbox Code Playgroud)
请注意,其中一些元素是","因为您拆分了包含逗号的字符串.
如果你alert这样做,那你就隐含地toString()在那个数组上做了额外的事情
"a,p,p,l,e,,,b,a ...
Run Code Online (Sandbox Code Playgroud)
如果目的是为了调试,不使用alert,但console.log(你会得到大多数浏览器访问控制台F12).
如果您的目标是获得包含所有单词字母的数组,则可以使用
var letters = [].concat.apply([], words.map(function(v){ return v.split('') }));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1375 次 |
| 最近记录: |