groupBy在lodash算

nir*_*air 5 javascript arrays lodash

我有一个像这样的对象数组:

[
  {
    rating: 1
  },
  {
    rating: 2
  },
  {
    rating: 3
  },
  {
    rating: 1
  }
]
Run Code Online (Sandbox Code Playgroud)

我想要这样的结果 -

{
  1: 2,
  2: 1,
  3: 1
}
Run Code Online (Sandbox Code Playgroud)

它会Rating_Value: Count.

我怎么能在lodash中这样做?或者如果没有lodash它可以优化?

rye*_*lar 9

你可以使用lodash#countBy.

var result = _.countBy(data, 'rating');
Run Code Online (Sandbox Code Playgroud)

var data = [
  {
    rating: 1
  },
  {
    rating: 2
  },
  {
    rating: 3
  },
  {
    rating: 1
  }
];

var result = _.countBy(data, 'rating');

console.log(result);
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/lodash/4.14.2/lodash.min.js"></script>
Run Code Online (Sandbox Code Playgroud)