Javascript
 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

です。
  1. JavaScriptの配列に存在する数値と文字列番号の違い

    問題 整数の数値表現と文字列表現の混合配列を受け取るJavaScript関数を作成する必要があります。 この関数は、文字列整数を合計し、これを非文字列整数の合計から減算する必要があります。 例 以下はコードです- const arr = [5, 2, '4', '7', '4', 2, 7, 9]; const integerDifference = (arr = []) => {    let res = 0;    for(let i = 0; i < arr.length; i++)

  2. JavaScriptで数値の配列の分散を計算する

    問題 昇順で並べ替えられた数値の配列を受け取るJavaScript関数を作成する必要があります。 この関数は、数値の配列の分散を計算する必要があります。一連の数値の分散は、それらの平均に基づいて計算されます。 $ Mean(M)=(\ sum_ {i =0} ^ {n-1} arr [i])$ / n そして分散(V)=$(\ sum_ {i =0} ^ {n-1}(arr [i] --M)^ 2)$ / n 例 以下はコードです- const arr = [4, 6, 7, 8, 9, 10, 10]; const findVariance = (arr = []) =>