私はfreeCodeCampの問題の解決策について以下に概説しました。そして、array.reduce()がどのように動作するかの論理/理解を確認したいと思います。array.reduce()の適切なユーザー
function largestOfFour(arr) {
// Created bigArray[]; as an empty container to push the largest number into.
var bigArray = [];
for(var i = 0; i < arr.length; i++){
bigArray.push(arr[i].reduce(function(a, b) {
return Math.max(a, b);
}));
}
return bigArray;
}
largestOfFour([[4, 5, 1, 3], [13, 27, 18, 26], [32, 35, 37, 39], [1000, 1001, 857, 1]]);
したがって、reduce()は、aとbの間の最大値を返す関数を呼び出しています。
aは初期値であり、初期値を渡さなかったため0であり、現在の値は4であり、これはbである。明らか4は0とその時点で、Math.max = 4
then a = 4 and b = 5, then Math.max = 5
then a = 5 and b = 1, then Math.max = 5
then a = 5, and b = 3, then Math.max = 5
こと大きく、アレイ内の各数を反復した後、それはbigArray []に5をプッシュする)(プッシュを使用します。
bigArray.push(arr[i].reduce(function(a, b){return Math.max(a, b);}));
//arr[0] is now arr[4, 5, 1, 3]
arr[0].reduce(function(a, b){return Math.max(0, 4);}));
//Math.max returns 4
arr[0].reduce(function(a, b){return Math.max(4, 5);}));
//Math.max returns 5
arr[0].reduce(function(a, b){return Math.max(5, 1);}));
//Math.max returns 5
arr[0].reduce(function(a, b){return Math.max(5, 3);}));
//Math.max returns 5
上記のロジックの後、5はbigArrayとbigArray = [5]に 'push()'を取得します。
自分のロジックと自分のコードの理解を確認するだけです。
'arr'は配列の配列ですか? –
パラメータを見ても明らかです。 –
これはhttps://codereview.stackexchange.com/にもっと適しています – jmargolisvt