【发布时间】:2020-02-12 23:43:29
【问题描述】:
我在(基于动态/用户输入的)字符串上调用split(),并对返回数组中的每个元素执行操作。有时我会得到一个只有一个字符('/')的字符串,这会产生一些意想不到的结果(至少对我来说)。
如果我这样称呼:
var randomString = '/';
var splitString = randomString.split('/');
splitString 返回值["", ""]。我预计只会收到[""]。
我在返回的数组中得到 2 个空字符串是否有原因?我找不到任何文档或示例说明为什么会发生这种情况。另外,如果我想在这个例子中只接收一个空字符串,最好的方法是什么?只删除最后一个空字符串?
谢谢
【问题讨论】:
-
在/之前是一个空字符串,在/之后是一个空字符串我想这就是为什么
-
是的,split 返回一个包含 2 个元素的数组(1 个在拆分字符之前,1 个在之后)。你想在这里做什么?至于为什么要使用拆分?
-
在 Python 中也会发生同样的事情。你基本上是把绳子切成两半。由于只有一个元素开头,因此您会得到两个空字符串。
-
@GlenK 谢谢,我想这是有道理的。我正在使用窗口路径 (window.location.path) 并生成面包屑 UI。内容本身是基于路径的动态
-
split(needle) 如果没有找到 needle 将返回一个字符串,并为它找到的每个针返回每个附加字符串。因此,如果找到一根针,它将返回 2 个字符串,找到 2 个针返回 3 个字符串,依此类推。我在这里得到你想要完成的事情。为什么你期望得到一个空字符串?
标签: javascript string split