Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 숫자 배열을 합산하기 위한 forEach() 및 reduce() 비교.

<시간/>

방대한 숫자 배열을 합산하기 위해 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입니다.