2012-06-13 6 views
32

のための配列を確認してください。私は特定の日付は、その配列の一部として存在するかどうかを確認するための簡単なチェックを行いたいJavascriptが - 私は祝日と単純な配列持た値

var bank_holidays = ['06/04/2012','09/04/2012','07/05/2012','04/06/2012','05/06/2012','27/08/2012','25/12/2012','26/12/2012','01/01/2013','29/03/2013','01/04/2013','06/05/2013','27/05/2013']; 

を、私が試してみました:

if('06/04/2012' in bank_holidays) { alert('LOL'); } 
if(bank_holidays['06/04/2012'] !== undefined) { alert 'LOL'; } 

他にもいくつかの解決策がありますが、問題を引き起こしていた場合は、スラッシュのすべてを単純な「x」に置き換えてみました。

お勧めします。ありがとうございます!

(編集)ここでjsFiddleだ - http://jsfiddle.net/ENFWe/

答えて

66

レガシーブラウザを気にしない場合:

if (bank_holidays.indexOf('06/04/2012') > -1) 

レガシーブラウザについてケアを行う場合は、可能なシムがありますon MDN。それ以外の場合は、jQueryのは、同等の機能を提供します。

if ($.inArray('06/04/2012', bank_holidays) > -1) 
+2

を周りに他の方法であるべき: 'ARR .indexOf(値) ' –

+0

おっと、私はそれを覚えていない;) –

+0

IEで動作しません右 ? –

6

はこれを試してみてください:

// this will fix old browsers 
if (!Array.prototype.indexOf) { 
    Array.prototype.indexOf = function(value) { 
    for (var i = 0; i < this.length; i++) { 
     if (this[i] === value) { 
     return i; 
     } 
    } 

    return -1; 
    } 
} 

// example 
if ([1, 2, 3].indexOf(2) != -1) { 
    // yay! 
} 
3

これはそれを行う必要があります。

for (var i = 0; i < bank_holidays.length; i++) { 
    if (bank_holidays[i] === '06/04/2012') { 
     alert('LOL'); 
    } 
} 

jsFiddle