是否可以从 forEach 的返回值中构造一个对象?我是怎么做的:

const data = {}
object.rules.forEach(rule => {
  data[rule.name] = { body: [], type: rule.type }
})

我想怎么做:
const data = object.rules.forEach(rule => {
  data[rule.name] = { body: [], type: rule.type }
})

最佳答案

考虑使用 Array.reduce

const data = object.rules.reduce((obj, rule) => {
  obj[rule.name] = { body: [], type: rule.type }
  return obj;
}, {})

和更短的版本
const data = object.rules.reduce((obj, rule) => Object.assign({}, obj, {[rule.name]:{ body: [], type: rule.type } }), {})

关于javascript - 从 forEach 返回对象?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48128876/

10-12 13:06