Javascript 在where()函数中返回一个或多或少的对象

Javascript 在where()函数中返回一个或多或少的对象,javascript,jquery,underscore.js,Javascript,Jquery,Underscore.js,我对下划线.js中的where()函数有一个问题。 我有一个这样的物体: var location = [{ id: "1", name: "house 1", date: "20-11-2013" }, { id: "2", name: "house 2", date: "30-11-2013"}]; From <input type="date" name="from" /> Until <input type="date" name="

我对下划线.js中的where()函数有一个问题。 我有一个这样的物体:

var location = [{ id: "1", name: "house 1", date: "20-11-2013" },
                { id: "2", name: "house 2", date: "30-11-2013"}];
From
<input type="date" name="from" />

Until
<input type="date" name="until" />
还有一个表单,它作为一个过滤器,具有如下选择:

var location = [{ id: "1", name: "house 1", date: "20-11-2013" },
                { id: "2", name: "house 2", date: "30-11-2013"}];
From
<input type="date" name="from" />

Until
<input type="date" name="until" />
来自
直到

如何使where()函数返回日期大于From值且小于Until值的对象。

我想您不能使用
where
来执行此操作。您可以使用
过滤器

var fromDate, untilDate;
fromDate = $('[name="from"]').val();
fromDate = fromDate.split('-');
fromDate = new Date(fromDate[0], fromDate[1] - 1, fromDate[2]);
untilDate = $('[name="until"]').val();
untilDate = untilDate.split('-');
untilDate = new Date(untilDate[0], untilDate[1] - 1, untilDate[2]);
var result = _.filter(location, function (item) {
    var date;
    date = item.date.split('-');
    date = new Date(date[2], date[1] - 1, date[0]);
    return date > fromDate && date < untilDate; 
});
var fromDate,untilDate;
fromDate=$('[name=“from”]')。val();
fromDate=fromDate.split('-');
fromDate=新日期(fromDate[0],fromDate[1]-1,fromDate[2]);
unteldate=$('[name=“until”]')。val();
untilDate=untilDate.split('-');
untilDate=新日期(untilDate[0],untilDate[1]-1,untilDate[2]);
var结果=U8;.filter(位置、函数(项){
风险值日期;
日期=item.date.split('-');
日期=新日期(日期[2],日期[1]-1,日期[0]);
返回日期>起始日期和日期<截止日期;
});

lt
gt
是否适用于日期?你不需要先把它们转换成日期对象吗,否则这只是比较字符串而已……是的,伙计。我正在搜索下划线
的核心,我猜我根本做不到这一点。我想我将使用where和返回的数组,我将使用过滤器来实现这一点。非常感谢。是的,我也尝试了一下,没有使用下划线,我想到了这个:。@Andy谢谢分享。不要忘记从解析器中的月份中减去1:
返回新日期(d[2],d[1]-1,d[0]);)