2010-03-16 90 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); 
    } 
} 
相關問題