在纯函数中使用 lodash 来映射输入值是否正确



是否可以在纯函数中使用 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 });

Lodash的map没有状态,也没有副作用,所以没问题。

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

Lodash 的映射的工作方式类似于 Array.prototype.map((,它创建一个新数组,其中包含在此数组中的每个元素上调用提供的函数的结果。

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

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

相关内容

  • 没有找到相关文章

最新更新