我偶然發現了這個代碼,是爲了重新定義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'定義在哪裏 –
您必須向我們展示'first()','last()'和'map()'函數,因爲這些函數不是標準的Javascript。我們可以猜測他們做了什麼,但如果我們不必猜測,這裏的答案會更好。另外,你問了'array.last()',但是在你的代碼中沒有這樣的東西。請花一些時間編寫/編輯一個明確的問題,其中包含所有必要的信息,以瞭解您所問的以及您的情況。現在,這個問題將被視爲「不清楚你要問什麼」,因爲它沒有足夠的信息。 – jfriend00