过滤具有多个属性的主干集合

Pab*_*blo 1 jquery backbone.js underscore.js

伙计,我有一个客人收藏.每位客人都有一个inDate,一个outDate和正在占用的床的id_beds.我试图过滤所有客人同时满足以下声明:

  • id_beds ==床
  • outDate <== date
  • inDate> == date

    App.Collections.Guests = Backbone.Collection.extend({
    url: 'guests/',
    model: App.Models.Guest,
    getBooking: function(bed, date){
    var gf = _.filter(this.models, function(model){
        // Get all Guests with id_beds = bed
            // && outDate < date && inDate <= date
    });
    
    console.log(gf);
    return gf;
    }
    });
    
    Run Code Online (Sandbox Code Playgroud)

现在,问题是,我不知道如何使用这3个语句过滤掉集合.首先,不知道如何比较日期,因为它们是字符串,不能看到比其他日期更大.第二,不知道如何使用多于1个参数进行过滤.

有任何想法吗?

谢谢!

mtt*_*tth 5

你快到了.由于您的日期是YYYY-MM-DD简单的字符串比较工作,您的过滤器函数应该只true在满足三个条件时返回:

getBooking: function(bed, date) {
  var gf = this.models.filter(function(model) {
    return (
      model.get('outDate') > date &&
      model.get('inDate') <= date &&
      model.get('id_beds') === bed
    )
  })
  // ...
  return gf
}
Run Code Online (Sandbox Code Playgroud)