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
です。-
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++)
-
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 = []) =>