Underscore.js .filter() et .()

J'ai un tableau de event des objets appelés events. Chaque event a markets, un tableau contenant market objets. À l'intérieur il y a ici un autre tableau appelé outcomes, contenant outcome objets.

Dans cette question, j'ai demandé une [Underscore.js] pour trouver des événements qui ont marchés qui ont des résultats qui ont une propriété nommée test. La réponse a été:

//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";
        });
    });
});

Cela fonctionne très bien, mais je me demandais comment je pourrais le modifier si je voulais filtrer les résultats pour chaque marché, de sorte que market.outcomes stockées uniquement les résultats qui ont été égale à bar. Actuellement, c'est tout ça, ce sont des marchés qui ont des résultats qui ont certains ensemble test propriétés. Je tiens à dépouiller ceux qui ne le font pas.

Est-il vraiment de l'excellent travail? Votre intime .any() rappel des références à des "résultats", mais le paramètre est "outc" ...
Aussi, cela mis à part, il semble que vous avez juste besoin de passer d'un .any() à .all() avec une condition contraire. En d'autres termes, allez les " ... " à "tous ceux qui ne le sont pas ..."
Désolé, faute de frappe....
Pouvez-vous me donner un exemple? Pas sûr de ce que tu veux dire par "en face de condition".
Voulez-vous retirer de la événements / marchés array(s) ou voulez-vous créer une nouvelle structure contenant ces résultats?

OriginalL'auteur | 2012-05-30