を減らして私がArray.prototype.reduce再定義することを意図され、このコードにつまずい:使用は
function first(array, n){
return n === undefined ? array[0] : array.slice(0, n);
};
function last(array, n){
if(n> array.length){
return array;
}else{
return n === undefined ? array[array.legnth -1] : array.slice(array.length - n, array.length);
};
function map(collection, iterator){
var arr = [];
each(collection, function(element, index){
arr.push(iterator(element, index);
});
return arr;
};
function reduce(collection, rf, acc) {
acc = acc === undefined ? first(collection) : acc;
return last(map(collection, function (value) {
acc = rf(acc, value);
return acc;
}));
}
をしかし、私は「ドンarray.last()がここで何をしているのか理解している。誰かが説明してくれますか?ありがとうございました。ここで
配列にはネイティブ 'last'関数はありません。プロトタイプを配列に拡張していない限りあなたのコードに基づいて、 'array.last()'コールはありません。私が見ることのできるのは 'last'関数だけです。どのような最後のことは、そのJavaScriptスコープ自体で実装されています。あなたはそれを自分で見つけることができます。 – choz
ここでは 'last'が定義されています –
標準Javascriptではないので、' first() '、' last() 'および' map() '関数を表示しなければなりません。彼らが何をしているのか推測することができますが、推測する必要がなければ、ここでの回答はずっと優れています。また、 'array.last()'について尋ねましたが、あなたのコードにそのようなものはありません。あなたが何を求めているのか、あなたの状況を理解するために必要なすべての情報を含んだ明確な質問を書いたり編集したりしてください。今のところ、この質問は情報が不十分であるため「あなたが求めているものが不明」となっています。 – jfriend00