使用lodash通过多个键对对象进行分组

时间:2016-08-19 22:13:26

标签: javascript arrays ecmascript-6 lodash

数据如下所示:

const data = [
  {'a': '1', 'b': '2', 'c': '3'},
  {'a': '10', 'b': '20', 'c': '30'}
]

我想要这个:

const aArray = ['1','10']
     ,bArray = ['2', '20']
     ,cArray = ['3', '30']

我这样做了:

...
return {
  aArray = _.values(_.mapValues(data, 'a'))
  bArray = _.values(_.mapValues(data, 'b'))
  cArray = _.values(_.mapValues(data, 'c'))
}

它有效,但看起来并不干净。什么是用多个键对对象进行分组的最简洁方法?

1 个答案:

答案 0 :(得分:4)

您可以使用纯JavaScript实现此目的:

const data = [
  {'a': '1', 'b': '2', 'c': '3'},
  {'a': '10', 'b': '20', 'c': '30'}
]

const aArray = data.map(x => x.a)
     ,bArray = data.map(x => x.b)
     ,cArray = data.map(x => x.c)