因为
"this,is,a,comma,separated,sentence".split(",");
将输出
["this", "is", "a", "comma", "separated", "sentence"]
那为什么 "1000010001001".split("1")
拆分没有按预期工作,即 ["0000", "000", "00"]
。相反,它输出
["", "0000", "000", "00", ""]
答案 0 :(得分:3)
当要拆分的子串存在于字符串的边缘,或连续存在于字符串中时,这些位置的结果为空字符串。
给定要在字符串中拆分的 n
个子字符串,结果将总是包含 n + 1
个字符串作为结果。
例如:
aba
在 a
上拆分时,将产生
['', 'b', '']
因为 '' + 'a' + 'b' + 'a' + ''
等价于 aba
的原始字符串。
1000010001001
的工作方式相同。
1000010001001
^ ^ ^ ^
'' + '1' + '0000' + '1' + '000' + '1' + '00' + '1' + ''
要拆分连续子字符串的示例,完全相同的逻辑适用于:
console.log('abba'.split('b'));