2013-11-14 2 views
0

Underscore.js의 where() 함수에 관한 문제가 있습니다.더 크거나 작은 오브젝트 반환 where() function

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" /> 

을 어느 날짜가 시작 값보다 커서 Until 값보다 작습니다.

답변

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; 
}); 
+1

'lt' 및 날짜에 대한'gt' 사용할 수 있습니까? 그것들을 데이트 객체로 먼저 변환해야하지 않겠습니까? 그렇지 않으면 그냥 문자열을 비교하는 것입니다. – Andy

+0

예, man. 나는 언더 코어의 핵심 부분을 검색하고 전혀 할 수 없다고 생각한다. 메신저를 사용하려고 생각하고 배열을 사용하면 필터를 사용하여 필터를 사용합니다. 고맙습니다! –

+0

그래, 나는 밑줄을 사용하지 않고 그것도 총을 줬고이 함께 올랐다 : [jsfiddle] (http://jsfiddle.net/rjRrH/). – Andy

관련 문제