这里有很多类似的问题,但我找不到符合我的需求的。我正在寻找一个相对简单的解决方案,用于根据键将数组中的对象堆叠到新数组中。
在示例数据中,我们按其“ship”键对对象进行分组。
原始数据:
var myObjArray = [
{
name:'Malcolm Reynolds',
ship:'Serenity'
},
{
name: 'Carmen Ibanez',
ship: 'Rodger Young',
},
{
name: 'Zander Barcalow',
ship: 'Rodger Young',
},
{
name:'Hoban Washburne',
ship:'Serenity'
},
{
name:'James Kirk',
ship:'USS Enterprise'
}
];
重组数据:
var myNewObjArray = [
[{
name:'Malcolm Reynolds',
ship:'Serenity'
},
{
name:'Hoban Washburne',
ship:'Serenity'
}],
[{
name: 'Carmen Ibanez',
ship: 'Rodger Young',
},
{
name: 'Zander Barcalow',
ship: 'Rodger Young',
}],
{
name:'James Kirk', // optionally also stick in an array
ship:'USS Enterprise'
}
];
如果有人有解决方法,我会非常感激,因为我的当前尝试可以说是很粗糙了。
.sort(customCompare)
,其中customCompare = function(a,b){.....}
。 - Alex Kudryashev