У меня есть следующий массив events
. Для каждого события есть хэш, как {organisation name: [{participant 1}, {participant 2}, {...}]}
Фильтрация вложенного массива объектов
"events": [
{
"Org A": [
{
"event_id": 1,
"id": 432,
"name": "John Doe",
"role": null
},
{
"event_id": 1,
"id": 312,
"name": "Jane Mow",
"role": [
"speaker"
]
}
],
}
],
Я хотел бы отфильтровать этот events
массив содержит только участников, роль которых содержит speaker
. Кроме того, когда в массиве участников нет динамиков, необходимо удалить соответствующую запись организации из объекта Hash (объект).
Чтобы отфильтровать массив объектов, я попытался с помощью этого:
_.each(events, function(event){
_.filter(event, function(p) {
_.filter(p, function(d){
return _.some(d.role, function(r){
return r == "speaker"})
})
})
})
Это, однако, не работает.
'd.role' является массивом и, следовательно,' г == speaker' никогда не будет истинным – Jaco
ваш первый '_.filter' не имеет возврата –
'filter' возвращает новый массив, но вы ничего не делаете с ним. – Bergi