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 に答える