我已经找了几天了,但还没有找到这个具体问题的答案。我正在从 API 中的端点接收 JavaScript 对象数组。我需要根据类型将对象分组在一起。
硬编码对象数组示例:
$scope.content = {
things: [
{
thing: 'one',
thingType: 'load'
},
{
thing: 'two',
thingType: 'export'
},
{
thing: 'three',
thingType: 'export'
}
]
}
var typeArr = [];
for (var key in $scope.content.things) {
typeArr[key] = $scope.content.things[key].thingType;
}
typeArr = _.uniq(typeArr);
typeArr 现在将是 [load, export] 接下来我需要比较 things[ ] 中的所有对象,使得
if(typeArr[key] === things[i].thingType)
会像这样插入该对象:
typeArr = [
load: {
thing: 'one',
thingType: 'load'
},
export: [{
thing: 'two',
thingType: 'export'
},
{
thing: 'three',
thingType: 'export'
}
]
]
换句话说,我需要对象保持完整,我需要对它们进行分类,并根据共享类型嵌套它们。我整个星期都被这个问题严重困扰了。任何见解将不胜感激。
最佳答案
试试这个
var content = {
things: [
{
thing: 'one',
thingType: 'load'
},
{
thing: 'two',
thingType: 'export'
},
{
thing: 'three',
thingType: 'export'
}
]
}
var typeArr = {};
content.things.forEach(function(item){
typeArr[item.thingType] = typeArr[item.thingType]||[];
typeArr[item.thingType].push(item);
});
document.body.innerHTML = JSON.stringify(typeArr);
关于JavaScript 组对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31373760/