2017-05-01 6 views
1

オブジェクトの配列があり、オブジェクトのキーの1つに基づいて配列の値を更新しようとしています。キー変数を使用してオブジェクトの配列を更新

キーを変数として保存するのが難しいです。

変数は、それが失敗し、ちょうどそれがなら新しい要素

let keyDataField = 'AUDCASH'; 
    for (let i = this.CellRow + 1; i < this.cash2.length; i ++) 
    { 
     this.cash2[i].keyDataField = 0; 
    }; 

が追加されますように私は私のオブジェクトキーを格納するよ場合は、この例では、オブジェクトがそう

enter image description here

のように見えますハードコードされています

for (let i = this.CellRow + 1; i < this.cash2.length; i++) { 
     this.cash2[i].AUDCASH = 0; 
    }; 

変数を渡してください?

+0

を使用する必要があります

だけでキーを定義するために[]を使用します。 this.cash2 [i] .keyDataField = 0;を置き換えます。 this.cash2 [i] [keyDataField] = 0; –

答えて

1

キーとして使用する他の変数と行くことは[]

let keyDataField = 'AUDCASH'; 
for (let i = this.CellRow + 1; i < this.cash2.length; i ++) 
{ 
    this.cash2[i][keyDataField] = 0; 
}; 

同じ、あなたは変数iを使用しているとき、あなただけのcash2.iを行うことができない方法を見にする必要があります。何が現在やっていることはkeyDataFieldと呼ばれるキーを探しているのではなく

let keyDataField = 'AUDCASH'; 
for (let i = this.CellRow + 1; i < this.cash2.length; i ++) 
{ 
    this.cash2[i].keyDataField = 0; 
}; 

にキーkeyDataFieldを設定しようとしているためkeyDataField変数

0

に最初のケースはあなたのために動作しませんされているもの値とdot表記は変数を解決しません。あなたは括弧表記

this.cash2[i][keyDataField] = 0; 
関連する問題