是否正确使用lodash内部的纯函数来映射输入值?

时间:2017-03-27 02:59:35

标签: redux ionic2 ngrx ngrx-effects

将纯函数中的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 });

2 个答案:

答案 0 :(得分:1)

Lodash的map没有状态,没有副作用,所以没关系。

答案 1 :(得分:1)

  

纯函数是仅返回值的函数   由其输入值确定,没有可观察到的副作用。

Lodash的地图与Array.prototype.map()类似,它创建一个新数组,其结果是在此数组中的每个元素上调用提供的函数。

通常,为了保持函数纯,请始终返回一个新值,并且不要执行该函数范围之外的任何其他操作,如DOM相关操作等。

纯函数和redux:http://redux.js.org/docs/introduction/ThreePrinciples.html