如何获取数组中某一项的索引?

6
var fruits = [ 'apple', 'banana', 'orange' ];

我应该如何找到值为“banana”的索引(当然是“1”)。

谢谢


抱歉,我误读了您的帖子标题为“如何获取数组中的项目数”。好在您现在澄清了。 - Bart van Heukelom
2个回答

12

如图所示: https://developer.mozilla.org/En/Core_JavaScript_1.5_Reference/Objects/Array/IndexOf

if (!Array.prototype.indexOf)
{
  Array.prototype.indexOf = function(elt /*, from*/)
  {
    var len = this.length >>> 0;

    var from = Number(arguments[1]) || 0;
    from = (from < 0)
         ? Math.ceil(from)
         : Math.floor(from);
    if (from < 0)
      from += len;

    for (; from < len; from++)
    {
      if (from in this &&
          this[from] === elt)
        return from;
    }
    return -1;
  };
}

使用方法:

var fruits = [ 'apple', 'banana', 'orange' ];
var index = fruits.indexOf('banana');

将返回'1'


">>>" 对我来说是新的。它是做什么的?谷歌对此毫无用处! - spender
这应该包含在您的脚本顶部,基本上扩展了JavaScript以包括该方法。我正在更新我的回答,以包含其使用方法。 - Dustin Laine
@spender,这是无符号右移位运算符,在这种情况下,他们只是使用它来确保length值是一个32位无符号整数(所有位运算符在内部都使用32位整数)。 - Christian C. Salvadó

4

没有内置属性可以返回特定项的索引。如果需要一个函数,则可以使用由durilai定义的原型函数。但是,如果您只需要查找索引,则可以使用此简单的代码块返回该值:

for (var i=0; i<fruits.length; i++)
{
  if (fruits[i] == "banana")
  {
    alert(i);
  }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接