例如,如果我使用str.split()它不会起作用,但是当使用str.split(“”)时它会正常工作。
问题可能很奇怪但“实际上做了什么?你能给我一些使用其他东西的例子(如果它甚至使用过的话)?它只是语法还是有原因?
希望你理解它,有点难以解释。
答案 0 :(得分:2)
因为split()
没有分隔符,所以没有意义。 split()
""
表示“在每个角色之间拆分”。除了其他任何东西,它意味着“每次遇到这个角色时拆分成一个字符串数组”。
例如:
const str = "h1e1l1l1o1w1o1r1l1d";
console.log(str.split(1));
这将分成一个数组,其中“helloworld”的每个字母都是数组的单个项目。
此外,规范实现规定如果省略分隔符会发生什么(强调我的):
指定表示每次拆分的点的字符串 应该发生。
separator
被视为字符串或常规字符 表达。如果纯文本separator
包含多个 字符,必须找到整个字符串来表示拆分 点。 如果省略separator
,或str
中未出现1>,则 返回的数组包含一个由整个字符串组成的元素。 如果separator
为空字符串,则str
将转换为数组 字符。
请阅读以下方法的文档:
答案 1 :(得分:2)
JavaScript String.split()
方法接受两个可选参数,如果不向方法传递任何内容,则返回一个数组,其中原始字符串作为数组中的第一个值。
第一个参数是要拆分的字符,如果这是一个空字符串,它会拆分每个字符,所以如果你的字符串变量是dog并且你在它上面调用split传递空字符串,它会将每个字符分成一个数组,所以你有一个包含3个元素的数组,每个元素都是一个字母,数组[0] ='d',数组1 ='o',数组[2] ='g'
第二个参数是可选的,它给出了要进行多少拆分的限制,所以如果你有一个可以在空格上拆分6次并且你将第二个参数作为5传递的单词,它将省略最后一部分。 / p>