4
在這裏看到一個例子:http://jsperf.com/map-vs-for-basic 相反,在Chrome控制檯中,我得到了相反的結果(映射有時比循環快6-10倍)。我會猜測這將是相反的。JavaScript:爲什麼原生Array.prototype.map比Chrome控制檯中的循環更快?
所有的var input = [];
for(var i=0;i<10000;i++)input[i]=new Date(i);
var output = [];
function perform(value,index){
return value.toString()+index*index
}
console.time(1);output = input.map(perform);console.timeEnd(1);
// 1: 45.000ms
console.time(1);for(var i=0;i<input.length;i++)output[i]=perform(input[i],i);console.timeEnd(1);
// 1: 68.000ms
原生方法應該是最快的,因爲它是用原生瀏覽器語言(C++)編寫的。但是,結果並不一致(半年前,大多數原生ES5實現的速度要慢得多)。我對同一個問題進行了討論:http://stackoverflow.com/questions/14647470/performance-of-jquery-grep-vs-array-filter – Christoph