Javascript 如何在ionic2的angular2中使用切换时构建阵列

Javascript 如何在ionic2的angular2中使用切换时构建阵列,javascript,arrays,angular,Javascript,Arrays,Angular,我想在切换时构建一个对象数组 var data = [ { catId : Vegitarian, subcats :[ { category : "potatoes", rank : 23, catId : "Vegitarian" },

我想在切换时构建一个对象数组

 var data = [ 
          { catId : Vegitarian,
           subcats :[
                    {
                      category : "potatoes",
                      rank : 23,
                      catId : "Vegitarian"
                    },
                    {
                     category : "tomatoes",
                     rank : 2,
                     catId : "Vegitarian"
                    }
                  ]
            },
            { catId : "Non-vegetarian",
              subcats :[
                        {
                         category : "appetizers",
                         rank : 3,
                         catId : "Non-vegetarian"
                        },
                        {
                         category : "nonveg-appitizers",
                         rank : 52,
                         catId : "Non-vegetarian"
                        }
                      ]
               }

        ]
我的html代码 结果我得到了什么 即使我取消选择了
土豆

[
  {
    "catId": "vegetarian",
    "subcats": [
      {
        "subCatId": "potatoes",
        "catId": "vegetarian",
        "rank ": 23,
        "checked": true
      },
      {
        "subCatId": "tomatoes",
        "rank ": 2,
        "catId": "vegetarian",
        "checked": true
      }
     ]
   }
 ]

只是一个快速查看,但我认为你有错误的过滤。。。您必须返回布尔值:cats.subcats.filter(subCat=>{return subCat.checked=true}),以便快速查看,但我认为您的筛选错误。。。必须返回布尔值:cats.subcats.filter(subCat=>{return subCat.checked=true})
this.result=[];
      checkCats(catObj) {
    this.result = this.data.filter(cats => {
          if ((cats.checked == true) && (cats.subcats.length != 0)) {
            cats.subcats.filter(subCat => {
              subCat.checked = true
            })
            return cats
          } else if ((cats.checked == true) && (cats.subcats.length == 0)) {
            return cats
          } else if ((cats.checked == false) && (cats.subcats.length != 0)) {
             cats.subcats.filter(subCat => {
              subCat.checked = false
            }) 
          }
    })

    }
[
  {
    "catId": "vegetarian",
    "subcats": [
      {
        "subCatId": "potatoes",
        "catId": "vegetarian",
        "rank ": 23,
        "checked": true
      },
      {
        "subCatId": "tomatoes",
        "rank ": 2,
        "catId": "vegetarian",
        "checked": true
      }
     ]
   }
 ]