0

我对 Underscore.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" />

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

4

1 回答 1

1

我猜你不能用where. 您可以改用filterdoc

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; 
});
于 2013-11-14T13:19:13.850 回答