将indexOf切换为inArray

时间:2013-11-14 15:50:22

标签: jquery

我正在寻找一个很好的解决方案,将此indexOf转换为jQuery inArray。我在IE8上测试,indexOf完全失败。任何帮助将不胜感激。

function parse(datestring) {
    var date = parseInt(datestring.slice(0,2), 10),
        month = shortMonths.indexOf(datestring.slice(2,5).toLowerCase()),
        year = parseInt(datestring.slice(5,9), 10);
    return new Date(year, month, date);
}

4 个答案:

答案 0 :(得分:1)

尝试

month = $.inArray(datestring.slice(2, 5).toLowerCase(), shortMonths)

答案 1 :(得分:1)

试试这个:

month = $.inArray(datestring.slice(2,5).toLowerCase(), shortMonths)

就个人而言,我会保留您的代码。这没有你现在拥有的任何好处。

答案 2 :(得分:0)

相反,请避免重写代码,并将其添加到代码前面。 它为那些没有它的浏览器添加了indexOf支持。

if (!Array.prototype.indexOf) {
  Array.prototype.indexOf = function (searchElement , fromIndex) {
    var i,
        pivot = (fromIndex) ? fromIndex : 0,
        length;

    if (!this) {
      throw new TypeError();
    }

    length = this.length;

    if (length === 0 || pivot >= length) {
      return -1;
    }

    if (pivot < 0) {
      pivot = length - Math.abs(pivot);
    }

    for (i = pivot; i < length; i++) {
      if (this[i] === searchElement) {
        return i;
      }
    }
    return -1;
  };
}

答案 3 :(得分:0)

Mozilla Developer Network上有一个很好的indexOf填充。