gpt4 book ai didi

javascript - Angular,过滤 json 对象

转载 作者:行者123 更新时间:2023-12-03 11:30:49 24 4
gpt4 key购买 nike

我有一个大的 json 对象,用于控制级联选择列表,我试图过滤该列表以准备发送到服务器。

结构看起来像这样 -

      Accounts[{name:account1, id:1, selected:false, schools:[{name:school1, id:2,selected:true}]}]

(有多个帐户,每个帐户有多个学校,为了示例目的保持简单)

我想做的是将其通过一些 map /过滤器,并获得具有 selected = true 键的学校 ID 数组。因此,我的尝试是首先按所有学校进行过滤,然后按选择 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,所以我在这里遇到了问题。我认为我对 map /过滤器的使用有问题,因为我对它还很陌生。任何为我指明正确方向的见解将不胜感激!感谢您的阅读。

最佳答案

给定结构

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;
});

关于javascript - Angular,过滤 json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26740478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com