1

私はプログラミングにかなり慣れていないので、配列を使って作業をしようとしていますが、修正方法がわからないというエラーが発生します。どんな助けでも素晴らしいでしょう!

エラー: 1084: 構文エラー: 左大括弧の前にコロンが必要です。ソース: hockeyPP({hockeyPlayers[i]});

エラー: 1084: 構文エラー: 右中括弧の前に識別子が必要です。ソース: hockeyPP({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 が述べたように、問題は配列項目を囲む中括弧 ( "{}" ) でした。いくつかの場所に中括弧が表示されます。

  • 関数宣言
  • オブジェクト宣言
  • クラス宣言
  • ループ
  • 条件文

もう1つあると思いますが、それが頭の中で思いついたものです。基本的に、この行を使用しようとしたとき:

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

hockeyPlayers[i]新しいオブジェクト (ActionScript およびほとんどの言語で最も基本的なクラス) として宣言しようとしました。次の 2 つの方法で Object クラスをインスタンス化できます。

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

2 番目の遅延インスタンス化を実行しようとしました。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 に答える