基本数组有问题

时间:2013-01-18 15:50:16

标签: arrays actionscript-3

我对编程很新,而且我正在尝试使用数组做一些工作,但是我遇到了一个我不知道如何修复的错误。任何帮助都会很棒!

错误: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]});
        }
    }
}

2 个答案:

答案 0 :(得分:4)

删除{和}周围的hockeyPlayers [i]。为什么要以这种方式使用它?

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

答案 1 :(得分:0)

如Azzy Elvul所述,您的问题是数组项周围的大括号(“{}”)。你会在几个地方看到大括号:

  • 功能声明
  • 对象声明
  • 类声明
  • 循环
  • 条件

我认为还有一个,但这就是我想到的最重要的事情。基本上,当您尝试使用此行时:

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

您尝试将hockeyPlayers[i]声明为新对象(ActionScript中最基本的类,以及大多数语言)。您可以通过两种方式实例化Object类:

  1. var obj:Object = new Object();
  2. var obj:Object = {};
  3. 你试图做第二个,懒惰的实例化。因此,您尝试声明一个属性为hockeyPlayers[i]的对象,而不将值与其关联(所有OOP的基础是属性:值对)。

    正如第一个错误所说,你错过了那种实例化的冒号。如果你要尝试

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

    您不会遇到任何错误,因为这是实例化Object的正确方法。但是,根据您的需要,您只想将项目从一个数组推送到另一个数组。所以你也是     array2.push(array1 [selectedIndex]);

    我肯定会给LiveDocs一些阅读。它们看起来令人生畏,但是一旦你开始阅读它们,它们写得非常好,易于理解。

    LiveDocs - Array

    LiveDocs - Object