将纯函数中的lodash用于_.map
输入值是否可以,或者我只能使用较慢的本地Array.map
?
例如:
let shortcuts = _.map(state.shortcuts, (shortcut: any) => {
switch(shortcut.page){
case "Transfers": return tassign(shortcut, { badge: action.payload.transfers });
case "Payments": return tassign(shortcut, { badge: action.payload.payments });
case "Inbox": return tassign(shortcut, { badge: action.payload.inbox });
case "ConsolidatedPosition": return tassign(shortcut, { badge: action.payload.consolidatedPosition });
default: return shortcut;
}
});
return tassign(state, { shortcuts: shortcuts });
答案 0 :(得分:1)
Lodash的map
没有状态,没有副作用,所以没关系。
答案 1 :(得分:1)
纯函数是仅返回值的函数 由其输入值确定,没有可观察到的副作用。
Lodash的地图与Array.prototype.map()类似,它创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。
通常,为了保持函数纯,请始终返回一个新值,并且不要执行该函数范围之外的任何其他操作,如DOM相关操作等。
纯函数和redux:http://redux.js.org/docs/introduction/ThreePrinciples.html