2010-12-18 135 views
23

我有一個數組,我想將它傳遞作爲函數諸如參數:傳遞數組作爲參數在JavaScript

function something(arrayP){ 
    for(var i = 0; i < arrayP.length; i++){ 
      alert(arrayP[i].value); 
    } 
} 

我收到arrayP [0]是未定義的,該可能是真實的,因爲函數內部我從來沒有寫過什麼樣的arrayP數組。所以,

  1. 是可以傳遞數組作爲參數?
  2. 如果是的話,哪些是函數內部的要求?
+0

這只是一個例子,不要太討厭。 ;-)感謝您的注意。 – 2010-12-18 19:12:27

+0

我建議你學習更多關於數組的知識:https://developer.mozilla.org/en/JavaScript/Guide/Predefined_Core_Objects#Array_Object – 2010-12-18 19:48:11

回答

2

可以將數組傳遞給函數,並且沒有特殊的要求來處理它們。你確定你傳遞給你函數的數組實際上有一個元素[0]

34

只需卸下.value,就像這樣:

function(arrayP){  
    for(var i = 0; i < arrayP.length; i++){ 
     alert(arrayP[i]); //no .value here 
    } 
} 

當然,你可以傳遞一個數組,但在該位置獲得元件,使用只有arrayName[index],在.value會是斷開得到value財產數組中該位置的一個對象 - 對於字符串,數字等事物不存在。例如,"myString".value也可能是undefined

+3

'String.prototype.value =「嗨,尼克我打破了你的榜樣!」/邪惡的代碼't use – 2010-12-18 19:46:29

+1

@IvoWetzel你爲什麼認爲它是邪惡的代碼?他提供的代碼是否容易受到攻擊? – 5ervant 2015-09-02 15:18:32

5

JavaScript是一種動態類型語言。這意味着你永遠不需要聲明函數參數的類型(或任何其他變量)。因此,只要arrayP是一個數組並且包含具有value屬性的元素,您的代碼就會工作。