私は自分でreduce
を書きたいと思います。しかし、最後の4時間で、私はできませんでした。私自身の `reduce`関数を書くにはどうすればいいですか?
var a = [10, 21, 13, 56];
function add(a, b) { return a + b }
function foo(a, b) { return a.concat(b) }
Array.prototype.reduce2 = function() {
// I do not understand how to handle the function of the inlet
// I know that I should use arguments, but I don't know how many arguments there will be
var result = 0;
for(var i = 0; i < arguments.length; i++) {
result += arguments[i];
}
return result;
};
console.log(a.reduce(add), a.reduce2(add)) // 100 100
console.log(a.reduce(add, 10), a.reduce2(add, 10)) // 110 110
はい、これはたくさんのトピックのようですが、回答が見つかりませんでした。私は何が欠けているのか、ここで間違っていますか?
あなたは 'arguments'を使用する必要はありません - '関数(還元剤として明示的に宣言、はinitialValueは) ' – zerkms
あなたは[MDNのポリフィル](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/Reduce#Polyfill)を見て撮影したことがありますか?それはあなたにいくつかのヒントを与えるはずです – UnholySheep