2010-03-16 63 views
6
var fruits = [ 'apple', 'banana', 'orange' ]; 

我该如何找到值“香蕉”的索引是什么? (当然,这是“1”)。如何获取数组中的项目的索引?

感谢

+0

哎呀,我误解你的文章标题为“如何让数组商品数量”。好,你现在更清楚了。 – 2010-03-16 21:00:46

回答

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'

+0

>>>对我而言是陌生的。它有什么作用? Google对它毫无用处! – spender 2010-03-16 20:51:15

+0

这应该包含在脚本的顶部,基本上扩展了JavaScript以包含该方法。我正在用这个用法更新我的答案。 – 2010-03-16 20:55:49

+0

@spender,即* unsigned right shift * bitwise运算符,在这种情况下,它们只是为了确保“length”值是一个32位无符号整数(所有按位运算符都内部使用32位整数) ... – CMS 2010-03-16 21:02:42

4

没有内置属性返回索引特定项目的。如果你需要一个函数,那么你可以使用durilai定义的原型函数。但是,如果你只需要找到索引,你可以使用这个简单的代码块返回值:

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