【问题标题】:How to group an array of objects individually into single ones如何将一组对象单独分组为单个对象
【发布时间】:2018-07-10 23:59:49
【问题描述】:

我正在使用 lodash 对一组对象进行分组:

let people = [
  {name:'carl',group:'one'}, 
  {name:'john',group:'one'}, 
  {name:'dean',group:'three'}
]

_.groupBy(people,"group");

结果:

one: Array (2 items)
0: Object {group: "one", name: "carl"}
1: Object {group: "one", name: "john"}

three: Array (1 item)
0: Object {group: "three", name: "dean"}

我想要的是组数组长度大于 1 的对象单独分成另一个数组,如下所示:

one: Array (1 item)
0: Object {group: "one", name: "carl"}

one: Array (1 item)
0: Object {group: "one", name: "john"}

three: Array (1 item)
0: Object {group: "three", name: "dean"}

最好的方法是什么?

【问题讨论】:

  • 你不能有第二种格式的对象,因为你有冲突的键名(在这种情况下是one
  • 你最多能做的是:{"key": {'one': []}, "otherkey": {'one': []}, ....}
  • 但是,如果您正在使用具有这种复杂性的结构,为什么不直接使用从 _.groupBy 返回的结构呢?它很干净,你应该能够调整你的实现以适应它
  • 我不确定我是否理解这里的要求。

标签: javascript arrays lodash


【解决方案1】:

我认为你可以使用“排序”的方法

let people = [{name:'carl',group:'one'}, 
 {name:'john',group:'one'}, 
 {name:'dean',group:'three'}];

people.sort(function(a,b){
  return a.name.localeCompare(b.name)
});

参考: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

【讨论】:

    猜你喜欢
    • 2019-09-30
    • 1970-01-01
    • 2019-10-04
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-27
    • 2019-02-12
    相关资源
    最近更新 更多