Search code examples
backbone.jsunderscore.js

Trying to use underscore filter to extra a specific attribute set


I have a data set in a backbone model like below.

    “cal":[
{
  "event”:"com”,
  "method":”phone”
},
{
  "event":”morning”,
  "method":”phone”
},
{
  "event”:"afternoon”,
  "method":”phone”
},
{
  "event”:"evening”,
  "method”:”phone"
},
{
  "event”:"com”,
  "method":”SMS"
},
{
  "event”:"morning”,
  "method":”SMS”
},
{
  "event”:"afternoon”,
  "method":”SMS”
},
{
  "event”:"evening”,
  "method":”SMS"
},
{
  "event”:"com”,
  "method":”Email"
},
{
  "event”:"morning”,
  "method":”Email"
},
{
  "event”:"afternoon”,
  "method":”Email"
},
{
  "event”:"evening”,
  "method":”Email"
}
]

I want to filter through using _filter

 _.filter(cal, function(item){
           console.log("item = ", item);
        });

but need to extract all the parent objects that have the event value of "morning" in them.

Not sure how to do that using the filter method ? Presuming there isn't a better way to do it using another method in underscore.


Solution

  • If you'd prefer an even simpler alternative, try:

    var mornings = _.findWhere(cal, { event: 'morning' });