У меня проблемы с сужением фильтра до указанного c объекта, который мне нужен в моем 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}
]
Я потратил слишком много времени, пытаясь найти решение. Нужны советы.
Спасибо!