2
我剛纔瞭解了MapReduce的,所以我不知道是否有書面的MapReduce在JavaScript
const initialValue = 0;
if (this.items) {
return this.items.filter(function (item) {
return item && item.quantity && item.price;
}).reduce(function(previousValue, currentValue) {
return previousValue + currentValue.quantity * currentValue.price ;
}, initialValue);
} else {
return initialValue;
}
,而不是僅僅
let total = 0;
if (this.items) {
this.items.forEach(function(item) {
if (item && item.quantity && item.price) {
total += item.quantity * item.price;
}
});
}
return total;
首先可以肯定的是慢。你也可以使用for循環使第二個更快 – CoderPi
如果你使用MapReduce只是爲了累積值(以迭代方式),那麼第一個和第二個沒有什麼優勢。不過別忘了,MapReduce背後的想法是用於並行計算(分佈式系統/集羣)。所以如果'forEach'沒有被設計出來,實現並行運行,那麼它不適合分佈式環境,第二種解決方案不適用於並行計算,因此這兩種解決方案是完全不同的。 – pasty