如何使用lodash从现有的对象数组生成新的对象数组

时间:2017-04-16 06:03:34

标签: javascript lodash

有人可以帮助我使用lodash从现有对象生成一个新的对象数组吗?我一直在尝试_.zipObject and map的组合,但无济于事......基本上,我有一系列对象,如:

const names = [
  {
    first_name: 'nedd',
    given_name: 'cersei'
  },
  {
    first_name: 'tyrion',
    given_name: 'tywin'
  }
]

但是,我希望它看起来像:

[
  {
    name: 'nedd'
  },
  {
    name: 'cersei'
  },
  {
    name: 'tyrion'
  },
  {
    name: 'tywin'
  },
]

我尝试了各种迭代:

const newArray = _.zipObject( names, _.fill( Array(names.length), {name: ['first_name' || 'given_name']} ) );

但没有运气......有人可以帮忙吗?

提前致谢!

2 个答案:

答案 0 :(得分:2)

这可能有效:

_.flatMap(names, (n)=> [{name: n.first_name}, {name: n.given_name}]);

答案 1 :(得分:2)

_.flatMap_.map结合使用:

_.flatMap(names, (nameObj) => _.map(nameObj, (objVal) => { return { name: objVal }; }));