2013-01-18 75 views
1

我對編程相當陌生,而且我正在嘗試使用數組做一些工作,但是我遇到了一個我不知道如何解決的錯誤。任何幫助將是偉大的!基本數組問題

錯誤:1084:語法錯誤:在leftbracket之前期待冒號。 來源:hockeyPP({hockeyPlayers [i]});

錯誤:1084:語法錯誤:期待在rightbrace之前的標識符。 來源:hockeyPP({hockeyPlayers [i]});

function eliminateAbsentees():void{ 
    for(var i:int=0; i<=hockeyPlayers.length; i++){ 
     if(hockeyPlayers[i].attendance==true){ 
      hockeyPP.push({hockeyPlayers[i]}); 
     } 
    } 
} 
+0

這裏有ActionScript中的數組一個很好的介紹:http://www.adobe.com/devnet/actionscript/learning/as3-fundamentals/arrays。html –

回答

4

刪除{和}圍繞hockeyPlayers [i]。爲什麼你想用這種方式?

function eliminateAbsentees():void{ 
    for(var i:int = 0; i <= hockeyPlayers.length; i++){ 
     if(hockeyPlayers[i].attendance == true){ 
      hockeyPP.push(hockeyPlayers[i]); 
     } 
    } 
} 
+0

對不起,對於數組還是新的。我不是很瞭解他們,所以我幾乎只是試圖複製例子,直到我更好地理解它們。感謝您的幫助。 – Bondca

0

正如Azzy Elvul提到的,您的問題是數組項目周圍的大括號(「{}」)。你會看到大括號在幾個地方:

  • 函數聲明
  • 對象聲明
  • 類聲明
  • 循環
  • 條件語句

我覺得還有一個,但那正是我從頭頂上想出來的。基本上,當你試圖用這一行:

hockeyPP.push({hockeyPlayers[i]}); 

你試圖聲明hockeyPlayers[i]作爲一個新的對象(在ActionScript中最基本的階級,而大多數語言)。您可以通過兩種方式實例化對象類:

  1. var obj:Object = new Object();
  2. var obj:Object = {};

你試過做第二個,延遲實例。所以你試圖聲明一個屬性爲hockeyPlayers[i]的對象而沒有將值與它關聯(所有OOP的基礎是屬性:值對)。

由於第一個錯誤說,你錯過了這種類型的實例化冒號。如果你嘗試

hockeyPP.push({hockeyPlayers[i] : null}); //null is what an object is when it has no value 

你就不會得到任何錯誤,因爲這是實例化對象的正確方法。但是,爲了您的需要,您只需將一個項目從一個陣列推送到另一個陣列。所以你做 array2.push(array1 [selectedIndex]);

我肯定會給LiveDocs一些閱讀。他們看起來令人望而生畏,但是一旦你開始瀏覽他們,他們寫得非常好,並且很容易理解。

LiveDocs - Array

LiveDocs - Object