2016-07-26 62 views
0

也許我錯過了一些明顯的東西,但我不知道我做錯了什麼。 我試圖寫一個函數,如果給定的日期是英國的假期返回true。測試英國假期不工作

香港專業教育學院創建了一個小型陣列來測試我的功能:

const holidays = [ 
new Date(2016, 0, 1), //NewYearsDay 
new Date(2016, 2, 25), //GoodFriday 
new Date(2016, 2, 27), //Easter 
]; 

然後我的功能是

function isHoliday(date){ 
    return holidays.some(function(d) { 
     return (d == date); 
    }); 
} 

爲了測試它,我跑了

date = new Date(2016, 0, 1); 
var a = isHoliday(date); 
alert(a); 

但警告說假的? ?

+1

兩個對象,例如日期不相等。 – gcampbell

回答

1

您無法測試兩個Date對象是否相等。
只是測試日期的時間標記,其是一個數值

function isHoliday(date){ 
    return holidays.some(function(d) { 
     return (d.getTime() == date.getTime()); 
    }); 
}