Javascript 按关键字在数组中按元素分组
我正在AngularJS(1)上开发一个应用程序,我不知道如何在另一个数组组中按项拆分项目数组 我的意思是我有一个不同项目的数组,我会按uuid对项目进行分组,如:Javascript 按关键字在数组中按元素分组,javascript,angularjs,json,Javascript,Angularjs,Json,我正在AngularJS(1)上开发一个应用程序,我不知道如何在另一个数组组中按项拆分项目数组 我的意思是我有一个不同项目的数组,我会按uuid对项目进行分组,如: [ {"name": "toto", "uuid": 1111}, {"name": "tata", "uuid": 2222}, {"name": "titi", "uuid": 1111} ]; 将是: [ [ {"name": "toto", "uuid": 1111},
[
{"name": "toto", "uuid": 1111},
{"name": "tata", "uuid": 2222},
{"name": "titi", "uuid": 1111}
];
将是:
[
[
{"name": "toto", "uuid": 1111},
{"name": "titi", "uuid": 1111}
],
[
{"name": "tata", "uuid": 2222}
]
];
我已经在forEach函数上尝试了一次又一次的循环,但是如果我的数组很长,它会很长。你可以使用
reduce
和Object.values()
a=[
{“名称”:“toto”,“uuid”:1111},
{“名称”:“塔塔”,“uuid”:2222},
{“名称”:“titi”,“uuid”:1111}
];
设b=Object.values(a.reduce)(a,b)=>{
a[b.uuid]=a[b.uuid]?a[b.uuid]。concat(b):[b];
返回a;
}, {}));
控制台日志(b)代码>您可以使用哈希表并在哈希表的数组中收集对象
var数组=[{name:“toto”,uuid:1111},{name:“tata”,uuid:2222},{name:“titi”,uuid:1111}],
hash=Object.create(null),
结果=[];
array.forEach(函数(a){
如果(!hash[a.uuid]){
散列[a.uuid]=[];
push(hash[a.uuid]);
}
hash[a.uuid].push(a);
});
控制台日志(结果)代码>
.as console wrapper{max height:100%!important;top:0;}
您还可以使用一个已建立的库,使其更简单,省去麻烦:
让arr=[
{“名称”:“toto”,“uuid”:1111},
{“名称”:“塔塔”,“uuid”:2222},
{“名称”:“titi”,“uuid”:1111}
]
let grouped=uu.groupBy(arr,'uuid')
console.log(分组)
console.log(Object.values(分组))
我已经试过了为什么不给我们看一下你试过的代码呢?inutile@WeedozeYou没有表现出任何努力,因此没有表现出你试过的东西是不inutile的