Angular,过滤掉json对象
问题描述:
我有一个很大的json对象,我正在使用它来控制级联选择列表,我试图过滤以准备发送到服务器。Angular,过滤掉json对象
结构看起来是这样的 -
Accounts[{name:account1, id:1, selected:false, schools:[{name:school1, id:2,selected:true}]}]
(有多个账户,在每个多所学校,保持简单的例子目的)
我所要做的是把它通过一些地图/过滤器,并获得一系列具有selected = true的关键的学校的ID。所以我的尝试是首先筛选所有学校,然后再选择真正的学校,然后是这些学校的编号。
因此,这里是我的尝试 -
$scope.schooIDsForSave = $scope.accountTreeHere.filter(function(obj){
return obj.schools;
}).filter(function(obj){
return obj.selected;
}).map(function(obj){
return obj.id;
});
这只返回1个ID所以我得到的东西在这里错了。我认为我对地图/过滤器的使用有些问题,因为我对它仍然很感兴趣。任何洞察力指向我在正确的方向将非常感激!谢谢阅读。
答
鉴于结构
var schools = [{
name: 'account1',
id: 1,
selected: false,
schools: [{
name: 'school1',
id: 2,
selected: true
}]
}, {
name: 'account2',
id: 2,
selected: false,
schools: [{
name: 'school2',
id: 3,
selected: false
}]
}];
尝试
var ids = schools.map(function(v) {
return v.schools;
}).reduce(function(a, b) {
return a.concat(b);
}).filter(function(v) {
return v.selected;
}).map(function(v) {
return v.id;
});
很好,谢谢! – ajmajmajma 2014-11-04 17:17:03