我有一个数组
var months = ["January", "February", "March", "April", \
"May", "June", "July", "August", "September", "October", \
"November", "December"];
我有“Nov”,“October”,“Jun”,“June”,“Sept”,“Sep”等字符串。重点是,字符串可以是其中一个月的子字符串。
将字符串比作数组元素的子字符串的最佳方法是什么?我如何找出当月的指数?
我在看javascript / jQuery。
我知道我可以使用search
循环检查每个元素的数组,并在找到时中断。我想要更好的东西。
答案 0 :(得分: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");
答案 1 :(得分:1)
var substr = 'nov', months = ["december", "november", "feb"];
var index = months.indexOf( months.filter(function(v){ return v.indexOf(substr) >= 0;})[0]);
alert(index)
答案 2 :(得分: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;
}
}