1

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

错误:1084:语法错误:左括号前应为冒号。资料来源:曲棍球PP({hockeyPlayers[i]});

错误:1084:语法错误:在右大括号之前需要标识符。资料来源:曲棍球PP({hockeyPlayers[i]});

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

2 回答 2

4

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

function eliminateAbsentees():void{
    for(var i:int = 0; i <= hockeyPlayers.length; i++){
        if(hockeyPlayers[i].attendance == true){
            hockeyPP.push(hockeyPlayers[i]);
        }
    }
}
于 2013-01-18T16:12:28.613 回答
0

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

  • 函数声明
  • 对象声明
  • 类声明
  • 循环
  • 条件句

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

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

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

  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 - 数组

LiveDocs - 对象

于 2013-01-19T00:54:25.857 回答