Javascript如何在数组中对对象进行分组
我希望这个数组按id值排序,所以我希望属于ID34的所有userHandle都在一个对象中,而不是分开Javascript如何在数组中对对象进行分组,javascript,Javascript,我希望这个数组按id值排序,所以我希望属于ID34的所有userHandle都在一个对象中,而不是分开 Array [ Object { "id": 34, "userHandle": "Aw8AUj1mPkON1Fd1s6LhkNETHfb2", }, Object { "id": 34, "userHan
Array [
Object {
"id": 34,
"userHandle": "Aw8AUj1mPkON1Fd1s6LhkNETHfb2",
},
Object {
"id": 34,
"userHandle": "LrIwIx9I1xQBJ7aeCSrinpEaDP53",
},
Object {
"id": 33,
"userHandle": " PNfyQdC2cWaxtGiMZhLT9g1Lc9H2",
},
]
像这样的
const arr=[
{
“id”:34,
“用户句柄”:“Aw8AUj1mPkON1Fd1s6LhkNETHfb2”,
},
{
“id”:34,
“用户句柄”:“LRIWIX9I1XQBJ7AECSRIPIADP53”,
},
{
“id”:33,
“用户句柄”:“PNfyQdC2cWaxtGiMZhLT9g1Lc9H2”,
},
];
const result=arr.reduce(
(分组,{id,…obj})=>{
let found=grouped[id];
如果(!找到){
发现=[];
分组[id]=已找到;
}
发现。推(obj);
分组返回;
},
{},
);
控制台日志(结果)代码>类似但稍有不同的方法,但不使用reduce
:
const arr=[
{
“id”:34,
“用户句柄”:“Aw8AUj1mPkON1Fd1s6LhkNETHfb2”,
},
{
“id”:34,
“用户句柄”:“LRIWIX9I1XQBJ7AECSRIPIADP53”,
},
{
“id”:33,
“用户句柄”:“PNfyQdC2cWaxtGiMZhLT9g1Lc9H2”,
},
];
const grouped={};
arr.forEach((obj)=>{
if(分组[obj.id]的类型=='undefined'){
分组的[obj.id]={id:obj.id,userHandle:[obj.userHandle]}
}
否则{
已分组[obj.id].userHandle.push(obj.userHandle);
}
});
控制台日志(分组)代码>这不是排序而是分组。好的,如何分组输出是什么样子的?兄弟,这是我发布的输出,我只想更改输入的数组bro。。。最终结果应该是什么样的?为我工作谢谢你,这似乎是最好的答案。我有一个问题,我得到了这些结果,但有些地方我没有定义,有些地方我得到了这些结果(这是意料之中的,因为我没有把我的整个数组放在这里无论如何,我的整个数组都有一些没有属性id的对象,所以ofc在某个地方我得到了未定义,我如何删除那些未定义的结果?基本上如何从数组中删除它==未定义的任何地方,不管它的方法叫filterYeah,以太使用filter()
以清理阵列,或在循环中有一个额外的if
块,用于检查是否定义了id
属性。