Lodash-fp模块

1,612 阅读1分钟

  • lodash的FP模块提供了实用的对函数式编程友好的方法;
  • 提供了不可变auto-curried,interatee-first,data-last(自动柯里化,函数优先,数据靠后)的方法
//lodash模块
const _ = require('lodash')
_.map(["a","b","c"],_toUpper)
//=>["A","B","C"]
_.map(["a","b","c"])
//=>["A","B","C"]

_.split('Hello World', ' ')

//lodash/fp模块
const fp = require('lodash/fp')
fp.map(fp.toUpper,["a","b","c"])
fp.map(fp.toUpper)(["a","b","c"])

fp.split(' ','Hello World')
fp.split(' ')('Hello World')
// lodash 的 fp 模块
// NEVER SAY DIE  --> never-say-die
const fp = require('lodash/fp')

const f = fp.flowRight(fp.join('-'), fp.map(fp.toLower), fp.split(' '))

console.log(f('NEVER SAY DIE'))
  • lodash-map与lodash/fp模块中map的区别
// const _ = require('lodash')
// console.log(_.map(['23', '8', '10'], parseInt))
//lodash-map中传给函数的是3个参数,即数组中的值,数组的下标和数组
// // parseInt('23', 0, array)
// // parseInt('8', 1, array)
// // parseInt('10', 2, array)


const fp = require('lodash/fp')
//lodash/fp模块由于遵循函数优先,数据靠后,所以传给函数的参数只有数组的值;
console.log(fp.map(parseInt, ['23', '8', '10']))