3

私は配列を持っています

var months = ["January", "February", "March", "April", \
    "May", "June", "July", "August", "September", "October", \
    "November", "December"];

「11月」、「10月」、「6月」、「6月」、「9月」、「9月」などの文字列があります。要点は、文字列は月の1つのサブ文字列にすることができるということです。

文字列を配列要素のサブ文字列と比較するための最良の方法は何ですか?その月のインデックスを見つけるにはどうすればよいですか?

私はjavascript/jQueryを見ています。

searchを使用して各要素に対して配列チェックをループし、見つかったときに中断できることを知っています。もっといいものが欲しい。

4

3 に答える 3

5
var month_index = function(target) {
        target = target.toLocaleLowerCase();
        return jQuery.inArray(true, jQuery.map(months, function(s) {
            return s.toLocaleLowerCase().indexOf(target) > -1;
        }))
    };

var index_of_october = month_index("oct");
于 2012-12-24T18:58:40.503 に答える
2
var  substr = 'nov', months = ["december", "november", "feb"];

var index = months.indexOf( months.filter(function(v){ return v.indexOf(substr) >= 0;})[0]);
alert(index)

http://jsfiddle.net/KeMe9/

于 2012-12-24T19:13:29.817 に答える
0

配列項目を小文字にします

var txt = "Sep";
var found = false;
txt = txt.toLowerCase();
  for (var i = 0; i < 12; i++) {
    if (months[i].indexOf(txt) > -1) {
        found = true;
        break;
  }
}
于 2012-12-24T19:11:06.727 に答える