Javascript JS:从索引0开始创建所有子字符串的最快方法
因此,我正在寻找一种方法,从索引0开始的较大字符串生成所有可能的子字符串。那么,让我们假设我们有Javascript JS:从索引0开始创建所有子字符串的最快方法,javascript,performance,substring,Javascript,Performance,Substring,因此,我正在寻找一种方法,从索引0开始的较大字符串生成所有可能的子字符串。那么,让我们假设我们有 var a = "test"; 然后我想生成 "test", "tes", "te" and "t" 我想象用substring、substr或slice来做这件事,我在这里测试了它们: 现在切片法的速度几乎是其他方法的两倍。有人能解释一下吗?或者有更快的方法来实现这一点吗?这似乎更快: substr = "" for (var i = 0; i < length; i++) {
var a = "test";
然后我想生成
"test", "tes", "te" and "t"
我想象用substring、substr或slice来做这件事,我在这里测试了它们:
现在切片法的速度几乎是其他方法的两倍。有人能解释一下吗?或者有更快的方法来实现这一点吗?这似乎更快:
substr = ""
for (var i = 0; i < length; i++) {
substr += text.charAt(i)
}
substr=“”
对于(变量i=0;i
在您的基准测试中,
切片
更快,因为文本
的长度每次迭代都会减少
如果查看V8中的substr
、substring
和slice
实现,您会发现它们使用相同的内部函数%\u substring
。他们只是以微不足道的代价操纵它的参数
:String.prototype.slice
:String.prototype.substring
:String.prototype.substr