比较forEach()和reduce()以求和JavaScript中的数字数组。
我们需要比较ES6函数分别花费的时间forEach()以及reduce()求和大量数字的时间。
由于此处不能有大量数字,因此我们将通过执行多次求和操作(迭代)来模拟数组的大小
示例
让我们为此编写代码-
const arr = [1, 4, 4, 54, 56, 54, 2, 23, 6, 54, 65, 65];
const reduceSum = arr => arr.reduce((acc, val) => acc + val);
const forEachSum = arr => {
let sum = 0;
arr.forEach(el => sum += el);
return sum;
};
const iterations = 1000000000;
console.time('reduce');
for(let i = 0; i < iterations; i++){
let sumReduce = reduceSum(arr);
};
console.timeEnd('reduce');
console.time('forEach');
for(let j = 0; j < iterations; j++){
let sumForEach = forEachSum(arr);
};
console.timeEnd('forEach');输出结果
以下是控制台中的输出-
reduce: 19.058s forEach: 45.204s
大致来说,Array.prototype.reduce()与Array.prototype.forEach所花费的时间之比为1:1.4
热门推荐
1 训练狗狗基础
2 怎么训练狗狗笑
3 怎么训练狗狗卧下
4 上海狗狗训练基地
5 训练狗狗排便
6 狗狗基础训练
8 如何训练狗狗装死
9 狗狗站姿训练
10 狗狗训练用品
11 训练狗狗吧
12 狗狗要怎么训练
13 怎么训练狗狗玩球
14 训练狗狗唤回
15 狗狗训练躺下
16 狗狗训练指令
17 狗狗的训练技巧
18 狗狗不好训练