split(/\s + /).pop() - 它做了什么?

sec*_*ecr 4 javascript regex split

你能把这个表达翻译成文字吗?

split(/\s+/).pop()
Run Code Online (Sandbox Code Playgroud)

它是在javascript中使用正则表达式来分割字符串,但原则是什么?

nnn*_*nnn 16

该行代码将在空格上分割一个字符串以创建一个单词数组,然后返回最后一个单词.

据推测,你已经看到过在某种字符串上使用过的,例如:

var someString = "Hello, how are you today?";
var lastWord = someString.split(/\s+/).pop();
Run Code Online (Sandbox Code Playgroud)

在这种情况下lastWord"today?".

如果你一次只做一步:

var someString = "Hello, how are you today?";
var words = someString.split(/\s+/);
Run Code Online (Sandbox Code Playgroud)

现在words是数组:["Hello,", "how", "are", "you", "today?"]

然后:

var lastWord = words.pop();
Run Code Online (Sandbox Code Playgroud)

现在lastWord是数组中的最后一项,即"today?".

.pop()方法实际上也从数组中删除了最后一项(并返回它),所以在我的第二个例子中words,它将会改变["Hello,", "how", "are", "you"].

如果你像我在第一个例子中那样在一行中完成所有操作,那么你实际上并没有实际保留对数组的引用,只保留返回的最后一项.pop().

MDN有更多信息.split().

从字符串中获取最后一个单词的另一种方法如下:

var lastWord = someString.substr( someString.lastIndexOf(" ") + 1 );
Run Code Online (Sandbox Code Playgroud)