不多說廢話,直接上代碼及Chrome運行結果。
先扔出一個數組:
var arr = new Array();
for (var i = 0; i < 10000000; i++) {
arr.push(i * 12);
}
1.for循環
var sum = 0;
console.time("for");
for (var i = 0; i < arr.length; i++) {
sum += arr[i];
}
console.timeEnd("for");
console.log(sum);
2.while循環
var sum = 0;
function getSum(item, index, array) {
sum += item;
}
console.time();
arr.forEach(getSum);
console.timeEnd();
console.log(sum);
3.some方法
var sum = 0;
function getSum(item, index, array) {
sum += item;
}
console.time();
arr.some(getSum);
console.timeEnd();
console.log(sum);
4.map方法
var sum = 0;
function getSum(item, index, array) {
sum += item;
}
console.time();
arr.map(getSum);
console.timeEnd();
console.log(sum);
5.filter方法
var sum = 0;
function getSum(item, index, array) {
sum += item;
}
console.time();
arr.filter(getSum);
console.timeEnd();
console.log(sum);
6.every方法
var sum = 0;
function getSum(item, index, array) {
sum += item;
return true;
}
console.time();
arr.every(getSum);
console.timeEnd();
console.log(sum);
7.reduce方法
var sum = 0;
function getSum(preValue,curValue,index, array) {
return preValue + curValue;
}
console.time();
sum = arr.reduce(getSum, 0);
console.timeEnd();
console.log(sum);
8.eval方法
var sum = 0;
console.time();
sum = eval(arr.join("+"));
console.timeEnd();
console.log(sum);