39

私は銀行の休日を含む単純な配列を持っています:

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/

4

3 に答える 3

76

従来のブラウザを気にしない場合:

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

従来のブラウザを気にする場合は、 MDNで利用可能なシムがあります。それ以外の場合、jQueryは同等の関数を提供します。

if ( $.inArray( '06/04/2012', bank_holidays ) > -1 )
于 2012-06-13T13:07:42.657 に答える
7

これを試して:

// 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!
}
于 2012-06-13T13:09:50.393 に答える
2

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

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

jsFiddle

于 2012-06-13T13:10:35.277 に答える