为何JavaScript split函数遇分隔符会生成空元素?
为什么JavaScript中
'5+'.split('+')会返回['5', '']? 这是JavaScript里split()方法的标准行为:它会把分隔符当作分割边界,边界两侧的内容(哪怕是空内容)都会被作为数组元素保留下来。
拿你的例子来说:
'5+'里的+是最后一个字符,它的左侧是'5',右侧是空字符串,所以拆分后就得到['5', '']'5+++'有三个连续的+,相当于创建了四个分割段:'5'、第一个+右侧的空、第二个+右侧的空、第三个+右侧的空,所以返回['5', '', '', '']
如果想得到你预期的['5'],可以在拆分后过滤掉空元素,用filter()方法就行:
'5+'.split('+').filter(Boolean) // 返回 ['5']
Boolean在这里会把空字符串转为false,从而被过滤掉。
内容的提问来源于stack exchange,提问作者M C
相关产品推荐
相关产品推荐

