I have an array of event objects called events. Each event has markets, an array containing market objects.
I think you can do this using the Underscore.js filter and some (aka "any") methods:
// filter where condition is true
_.filter(events, function(evt) {
// return true where condition is true for any market
return _.any(evt.markets, function(mkt) {
// return true where any outcome has a "test" property defined
return _.any(mkt.outcomes, function(outc) {
return outc.test !== undefined ;
});
});
});