Bondca
Bondca

Reputation: 39

Trouble with basic arrays

I am fairly new to programming, and I'm trying to do some work with arrays, but I'm getting an error that I don't know how to fix. Any help would be great!

Error: 1084: Syntax error: expecting colon before leftbracket. Source: hockeyPP({hockeyPlayers[i]});

Error: 1084: Syntax error: expecting identifier before rightbrace. Source: hockeyPP({hockeyPlayers[i]});

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

Upvotes: 1

Views: 64

Answers (2)

Josh
Josh

Reputation: 8149

As mentioned by Azzy Elvul, your issue was the curly brackets ( "{}" ) around the array item. You'll see curly brackets in a few places:

  • Function Declarations
  • Object Declarations
  • Class Declarations
  • Loops
  • Conditionals

I think there is one more, but that is what I came up with off the top of my head. Basically, when you tried to use this line:

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

you tried to declare hockeyPlayers[i] as a new Object (the most basic class in ActionScript, and most languages). You can instantiate the Object class by two ways:

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

You tried to do the second one, the lazy instantiation. So you tried to declare an object with a property of hockeyPlayers[i] without associating a value with it (the basis of all OOP is property:value pairs).

As that first error said, you are missing a colon for that type of instantiation. If you were to try

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

you would not have gotten any errors, as that is the correct way to instantiate an Object. For your needs, though, you just want to push an item from one array to another array. So you do array2.push( array1[ selectedIndex ] );

I would definitely give the LiveDocs some reading. They can seem daunting, but they are incredibly well written and easy to understand once you start going through them.

LiveDocs - Array

LiveDocs - Object

Upvotes: 0

Azzy Elvul
Azzy Elvul

Reputation: 1438

remove { and } surrounding hockeyPlayers[i]. Why you want to used it in this way?

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

Upvotes: 4

Related Questions