使用下划线过滤JSON

时间:2016-03-03 15:31:48

标签: javascript json underscore.js

给出如此数据结构:

"items":
         {
         "Groups":[
            {
               "title":"group 1",
               "SubGroups":[
                  {
                     "title":"sub1",
                     "id" : "1",
                     "items":[
                        {
                           "title":"Ajax request 1",
                        },
                        {
                           "title":"Ajax request 2",
                        }
                     ]
                  },
                    {
                     "title":"sub2",
                     "id" : "2",
                     "items":[
                        {
                           "title":"Ajax request 3",
                        },
                        {
                           "title":"Ajax request 4",
                        }
                     ]
                  }
               ]
            }
         ]

如何根据ID提取子组的所有项目?我喜欢使用这样的发现:

var res1 = _.where(listing.items,{id:"2"});

但是返回一个空数组

由于

1 个答案:

答案 0 :(得分:2)

尝试定位子组数组,然后在那里搜索所需的ID。那应该返回该子组的属性。

var obj = {
    "Groups": [{
        "title": "group 1",
        "SubGroups": [{
            "title": "sub1",
            "id": "1",
            "items": [{
                "title": "Ajax request 1",
            }, {
                "title": "Ajax request 2",
            }]
        }, {
            "title": "sub2",
            "id": "2",
            "items": [{
                "title": "Ajax request 3",
            }, {
                "title": "Ajax request 4",
            }]
        }]
    }]
}

然后找到像这样的值

_.where(obj.Groups[0].SubGroups, {
   'id': '2'
});

刚刚测试过,这似乎有用