JavaScript,如何以最有效的方式从字符串中获取第二个值,如"var1-var2"

pub*_*com 5 javascript

我知道.split(" - ",2),但我怎样才能做出这样的事情

var str = "123-341235";
alert( str.split( "-",2 ) . [2] )<--- to get second one (341235) value? 
Run Code Online (Sandbox Code Playgroud)

Tnx寻求帮助全部!

How*_*ard 5

你只需要省略"." (点)并用0开始你的数组索引:

str.split("-", 2)[1];
Run Code Online (Sandbox Code Playgroud)


mae*_*ics 5

我看到两个简单的解决方案,它们的性能大致相同:

var str = "123-341235";
str.split('-')[1]; // => "341235" (slower)
str.slice(str.indexOf('-')+1); // => "341235" (faster)
Run Code Online (Sandbox Code Playgroud)

这个jsPerf 基准测试显示“slice/indexOf”解决方案在 Chrome 和 Firefox 上的速度大约是其两倍。

请注意,对于任一解决方案,您都必须在检索字符串的第二部分之前检查连字符是否确实存在;我敢打赌,添加检查仍然会使“slice/indexOf”解决方案更快。