[英]How to convert Lodash chain to modular imports
我有一个对象数组,我通过 lodash 链传递这些对象以获得所需的 output。但我想使代码模块化,而不是使用_
。 我想导入特定功能以减少导入大小,我搜索了 lodash 文档,但找不到任何有用的东西。
import _ from 'lodash'
let TransactionList = _(TransactionData)
.groupBy('hash')
.map(_.spread(_.merge))
.value()
我试过了,但这也不管用。
import { flow, groupBy, map, merge, spread } from 'lodash'
let TransactionList = flow(
groupBy('hash'),
map(spread(merge))
)(TransactionData)
Lodash 的函数没有柯里化,函数期望数据作为第一个参数。 要使用流,您需要使用箭头 function 包装期望多个参数的函数,并自己传递数据(本示例中的arr
或groups
):
import { flow, groupBy, map, merge, spread } from 'lodash'
const TransactionList = flow(
arr => groupBy(arr, 'hash'),
groups => map(groups, spread(merge))
)(TransactionData)
Lodash 有一个已弃用的功能版本 (lodash/fp) 解决了这个问题,当使用lodash/fp时,您的代码(稍作改动)可以工作:
import { flow, groupBy, map, mergeAll } from 'lodash'
const TransactionList = flow(
groupBy('hash'),
map(mergeAll)
)(TransactionData)
关于仅导入特定函数,您可以使用lodash-es ,将 Lodash 库导出为 ES 模块。
例如:
import { pad, toUpper } from 'lodash-es';
console.log(pad(toUpper('hello world'), 17, '*')); // ***HELLO WORLD***
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.