2017-02-08 3 views
0

angular2(typescript)の配列に要素を追加しようとしました。どちらのエラーもスローされず、要素を配列に追加しません。typescript push on arrayは要素を追加しません

コードスニペット:

let _dataSets:number[] = new Array(this.paymentModes.length); 

for (let i = 0; i < this.paymentModes.length; i++) { 
    let paymentMode = this.paymentModes[i]; 
    _dataSets.push(paymentMode.paymentModeTotalSales); 
    } 
    console.log(_dataSets); 

は何も悪いことはありますか?

* paymentModesはWSレスポンスの配列です。

+1

おそらく 'this.paymentModes'が空で項目が追加されていませんか? –

答えて

0

配列マップを使用して、属性paymentMode.paymentModeTotalSalesの型がnumberであることを確認します。そうでない場合は変換します。デフォルト値を0に設定します。

let dataSets:number[]; 
dataSets = this.paymentModes.map(paymentMode => Number(paymentMode.paymentModeTotalSales || 0)); 
console.log(dataSets); 
0

私が見ることができる唯一の理由は、paymentModeTotalSalesが数字でない場合です。 たとえば、次のようにうまく動作します。あなたはアラートで値10を見ることができます。これを試すことができますhere

module Test { 

    class PaymentMode { 
     public paymentModeTotalSales: number;   
     constructor (paymentModeTotalSales: number) { 
      this.paymentModeTotalSales = paymentModeTotalSales; 
      } 
    }  
    let _dataSets: PaymentMode[] = []; 
    let _paymentModes: PaymentMode[] = []; 
    _paymentModes.push(new PaymentMode(10)); 
    _paymentModes.push(new PaymentMode(12)); 
    for (let i = 0; i < _paymentModes.length; i++) { 
    let paymentMode = _paymentModes[i]; 
    _dataSets.push(new PaymentMode(paymentMode.paymentModeTotalSales)); 
    } 
    alert(_dataSets[0].paymentModeTotalSales); 

} 
+0

お返事ありがとうShailendraありがとうございます。 paymentModeTotalSalesは別のクラスで定義された番号です。私は同じことをしていたが、それは私のために働かなかった。私もこれを試して、あなたを更新します。 – Learner

関連する問題