2017-08-21 11 views
2

配列をグローバルに(メソッド外で)初期化しています。しかし、メソッド内で同じ配列を初期化しようとすると、予期しないトークンがスローされます。あなたは配列の場所のコードを見ることができます。これは配列calculateResult [] = [];配列2の角2、Typescript

private log: string ='result'; 
 
private kw: string = 'kw'; 
 
private frame: number = 0; 
 
public finalResult[] = []; 
 

 
//here this array is working fine 
 
calculateResult[] = []; 
 

 
DisplayResult(){ 
 

 
    //if i initialize this array here, it's throwing error 
 
    // calculateResult[] = []; 
 

 
    if(some_conditions_true){ 
 
    alert(); 
 
    this.log = '1SE0 070-2NC70' '\n'; 
 
    this.kw = '.37' '\n'; 
 
    this.frame = '71' '\n'; 
 

 
    this.calculateResult[0] = this.log; 
 
    this.calculateResult[1] = this.kw; 
 
    this.calculateResult[2] = this.frame; 
 

 
    this.finalResult.push(this.calculateResult); 
 

 
    for(i=0;i < this.finalResult.length;i++){ 
 
     console.log(this.finalResult[0][0]); 
 
     console.log(this.finalResult[0][1]); 
 
    } 
 
}

+0

「\ n」とは何ですか?コンパイラエラーはありませんか? – Vega

答えて

3

としてそれは正しいですので、あなたは、初期化する必要があり

Screenshot of the error

。それはクラスメソッドの内部にあるので、あなたがその名前の新しい配列を宣言する場合、

let calculateResult=[]; 

として宣言

どちらかとして対処すべきいずれかのため

もう一つは、間違っています

this.calculateResult = ... 

として上で宣言されたクラスのプロパティは、したがって、最初の1を維持:calculateResult = [];

コメントを残しておけば、this.calculateResult[0]はクラスメソッドでは未定義になります。参照することはできません。

+0

@Faisalみんな私は両方を試してみましたcalculateResult = []、calculateResult [] = [];私はエラーが発生しました "14原因:未定義のプロパティ '0'を設定できません"私はこのコードのためだと思う。 this.calculateResult [0] = this.log; this.calculateResult [1] = this.kw; this.calculateResult [2] = this.frame;なにか提案を ? –

+0

コメントを外してくださいcalculateResult [] = [];正しいものです – Vega

+0

新しい質問をコードと可能なプランカで掲示する必要があります。それはこの質問の範囲外になるでしょう – Vega

1

最初の宣言は、クラスに評される

DisplayResult(){ 
    this.calculateResult = []; 
} 
+0

おかげで、エラーが発生していません。配列を更新していません。メソッドをもう一度呼び出すのであれば、値を更新するのではなく、同じ値を再び追加するだけです。なにか提案を? –

関連する問題