Underscore.js findWhere in deep JSON

问题描述 投票:0回答:1

我在将过滤器缩小到JSON中所需的特定对象时遇到麻烦。

JSON:

var items = {
    "itemsGroup": [
        {
            "item": [
                {"description": "Name", "value": "Jane Doe"},
                {"description": "Age", "value": 23},
                {"description": "Phone", "value": "515-555-1234"},
                {"description": "Address", "value": "123 Fake St"},
                {"description": "City", "value": "Winchestertonfieldville"},
                {"description": "State", "value": "IA"},
                {"description": "Zip", "value": 50000}
            ],
        },
        {
            "item": [
                {"description": "Eye Color", "value": "Blue"},
                {"description": "Hair", "value": "Blonde"},
                {"description": "Height", "value": "5'6"},
                {"description": "Weight", "value": 125}
            ]
        }
    ]
}

我想要第一个嵌套数组中包含Name的对象:

{"description": "Name", "value": "Jane Doe"}

我可以这样实现:

_.findWhere(items.itemsGroup[0].item, {description:'Name'})

但是我想考虑JSON可能会改变的情况。

我最近得到的就是这个下划线功能:

_.filter(items.itemsGroup, function(i) {
    return _.findWhere(i.item, {description:'Name'});
});

但是这将返回整个第一个嵌套数组,而不是我要查找的对象(如我的第一个示例)。>>

"item": [
    {"description": "Name", "value": "Jane Doe"},
    {"description": "Age", "value": 23},
    {"description": "Phone", "value": "515-555-1234"},
    {"description": "Address", "value": "123 Fake St"},
    {"description": "City", "value": "Winchestertonfieldville"},
    {"description": "State", "value": "IA"},
    {"description": "Zip", "value": 50000}
]

我花了太多时间试图解决我的问题。寻找一些指导。

谢谢!

我无法将过滤器缩小到JSON中所需的特定对象。 JSON:变量项= {“ itemsGroup”:[{“ item”:[{“ description”:“名称”,“ ...

javascript json underscore.js
1个回答
0
投票

“ itemsGroup”的内容是数组,因此您可以迭代该数组。

© www.soinside.com 2019 - 2024. All rights reserved.