Javascript String.split 应该用 1 作为分隔符分割二进制字符串

时间:2021-03-23 18:59:05

标签: javascript arrays binary

因为 "this,is,a,comma,separated,sentence".split(","); 将输出

["this", "is", "a", "comma", "separated", "sentence"]

那为什么 "1000010001001".split("1") 拆分没有按预期工作,即 ["0000", "000", "00"]。相反,它输出

["", "0000", "000", "00", ""]

1 个答案:

答案 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'));