Tengo una matriz de event
objetos llamados events
. Cada event
tiene markets
, una matriz que contiene market
objetos. Dentro de aquí hay otra matriz llamada outcomes
, que contiene outcome
objetos.Underscore.js .filter() y .any()
En this question, solicité una forma [Underscore.js] para encontrar todos los eventos que tienen mercados que tienen resultados que tienen una propiedad llamada test
. La respuesta fue:
// 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" && outc.test !== "bar";
});
});
});
Esto funciona muy bien, pero me pregunto cómo iba a alterarla si quería filtrar los resultados para cada mercado, por lo que sólo se market.outcomes
resultados almacenados que eran iguales a bar
. Actualmente, esto solo me está dando mercados que tienen resultados que tienen algunas propiedades detest
. Quiero quitar los que no.
funciona realmente grande? La devolución de llamada '.any()' más interna hace referencia al "resultado" pero el parámetro es "outc" ... – Pointy
Además, aparte de eso, parece que solo necesitas voltear de '.any()' a '.all() 'con una condición opuesta. En otras palabras, vaya de "cualquiera que sea ..." a "todo lo que no sea ..." – Pointy
Lo sentimos, error de tipe ... –