第一个功能:
第二个函数执行相同的操作,但它不是连接,而是在数组中插入2个字符串。
问题:您如何确定哪些功能会分配更少的内存? 还有一个问题:我们将拥有的第一个函数在内存中(每次迭代)有多少个字符串?例如,对于第一次迭代,我们只有“a0”或“a0”,“a”和“0”?
function joinLetters() {
var arr = [];
for(var i = 0; i < 10000; i++) {
arr.push('a' + i);
}
return arr.join('');
}
function joinLetters2() {
var arr = [];
for(var i = 0; i < 10000; i++) {
arr.push('a');
arr.push(i.toString());
}
return arr.join('');
}
答案 0 :(得分:0)
joinLetters
只需一次推送,joinLetters2
代替两个push
。
因此,您将在第一个案例中arr.length = 10000
,而在第二个arr.length = 20000
中。
当然,你可以期待第二个函数比第一个函数更昂贵。