Lodash:如何简化

时间:2019-07-07 14:29:30

标签: javascript lodash

如何简化下一个代码:

rules = rules.map(x => Object.assign(x, x.ruleOption.options))
rules.forEach(x => delete x.ruleOption)
rules = _.keyBy(rules, 'code')

我开始主动使用Lodash,并尝试了解正确的使用方式。

1 个答案:

答案 0 :(得分:0)

您可以将destructuringrest syntax一起使用来获取ruleOption,并使用ruleOption创建一个新对象。然后,您可以使用object spreadruleOptions.options与对象的其余部分组合起来:

const rules = [{ code: 'x', ruleOption: { options: { type: 'a' }}}, { code: 'y', ruleOption: { options: { type: 'b' }}}];

const newRules = _.keyBy(
  rules.map(({ ruleOption, ...obj }) => ({ ...obj, ...ruleOption.options })),
  'code'
)

console.log(newRules)
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.11/lodash.js"></script>