Вернуть объект больше или меньше в функции where ()

0

У меня проблема с функцией where() в Underscore.js. У меня есть такой объект:

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() возвращать объекты, дата которых больше, чем значение "От" и меньше значения "До".

Теги:
underscore.js

1 ответ

1
Лучший ответ

Думаю, вы не можете сделать это, используя where. Вы можете использовать filter документ вместо:

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; 
});
  • 1
    Будет lt и gt работа по датам? Не нужно ли вам сначала конвертировать их в объекты даты, иначе это просто сравнение строк ...
  • 0
    Да, чувак. Я ищу в центре подчеркивания s core and guess that I can сделать это вообще. Я думаю, что я собираюсь использовать где и с массивом, который возвращает плохо использовать фильтр, чтобы сделать это. Спасибо!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню