不多说废话,直接上代码及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);