Javascript AngularJS和JSON数组
我试图通过使用AngularJS过滤器(如$filter)来安排现有的JSON数组,如下所示,但失败了Javascript AngularJS和JSON数组,javascript,arrays,angularjs,json,Javascript,Arrays,Angularjs,Json,我试图通过使用AngularJS过滤器(如$filter)来安排现有的JSON数组,如下所示,但失败了 { { name: "name 1", label: "A", }, { name: "name 2", label: "A", },
{
{
name: "name 1",
label: "A",
},
{
name: "name 2",
label: "A",
},
{
name: "name 3",
label: "B",
},
{
name: "name 4",
label: "B",
},
{
name: "name 5",
label: "B",
},
{
name: "name 6",
label: "C",
},
{
name: "name 7",
label: "C",
},
{
name: "name 8",
label: "C",
},
{
name: "name 9",
label: "D",
}
}
我想要的是将这个数组排列成如下的新数组
{
"A" : {
{
name: "name 1",
label: "A",
},
{
name: "name 2",
label: "A",
},
},
"B" : {
{
name: "name 3",
label: "B",
},
{
name: "name 4",
label: "B",
},
{
name: "name 5",
label: "B",
},
},
"C" : {
{
name: "name 6",
label: "C",
},
{
name: "name 7",
label: "C",
},
{
name: "name 8",
label: "C",
},
},
"D" : {
{
name: "name 9",
label: "D",
}
}
}
如何使用angularJS获取新数组?如果您正在使用,您可以使用\uuux.groupBy
函数来实现此目的:
var grouppedArray = _.groupBy(myArray, function(i){
return i.label;
})
若要仅提取标签,您可以像这样进行smth
var uniqueLables = [];
angular.forEach(myArray, function(obj){
if(uniqueLables.indexOf(obj.label) == -1) uniqueLables.push(obj.label)
})
试试这个
var result = {}
angular.forEach(jsonData, function(obj){
if(!result.hasOwnProperty(obj.label) result[obj.label] = []
result[obj.label].push(obj)
})
console.log(result)
非常感谢。再帮我一个忙。我怎么能只得到“A”、“B”、“C”而没有任何子值?