Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按关键字在数组中按元素分组_Javascript_Angularjs_Json - Fatal编程技术网

Javascript 按关键字在数组中按元素分组

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},

我正在AngularJS(1)上开发一个应用程序,我不知道如何在另一个数组组中按项拆分项目数组

我的意思是我有一个不同项目的数组,我会按uuid对项目进行分组,如:

[
    {"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的