例:
var string = "abcde";
var array = string.split("");
// array = ["a", "b", "c", "d", "e"]
Run Code Online (Sandbox Code Playgroud)
此拆分功能的摊销运行时间是多少?另外,如何在javascript中查看此类内置函数的源代码?
使用空分隔符参数,split本质上等同于:
var len = string.length;
var result = Array(len)
for (i = 0; i < len; i++) {
result[i] = string[i];
}
Run Code Online (Sandbox Code Playgroud)
这是O(len)。
使用分隔符,它变成O(string.length * delimiter.length),因为在循环中的每一步,它都必须测试是否有 匹配delimiter。
Rap*_*gée -4
编辑:OP确实问“这个分割函数的摊销运行时间是多少? ”。这是这个精确问题的答案
要获取函数的实际运行时间,请参阅: 如何测量函数执行所花费的时间
var start = new Date().getTime();
for (i = 0; i < 50000; ++i) {
// do something
}
var end = new Date().getTime();
var time = end - start;
alert('Execution time: ' + time);
Run Code Online (Sandbox Code Playgroud)
您无法查看 JS 源代码,因为它是内置于每个导航器中的。你可以看看Chromium 项目,也许你会找到你想要的东西。
我不知道如何获得分割的摊销时间,并且我认为您无法在无法访问源代码的情况下计算它。