2017-05-01 32 views
1

我有一個對象數組,我試圖根據對象的一個​​關鍵字更新數組中的值。使用關鍵變量更新對象數組

我無法將我的密鑰存儲爲變量。

在這種情況下,物體看起來像這樣

enter image description here

如果我來存儲我的對象主要因爲它不能變,只是增加了新的元素

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

如果它是硬編碼它的作品

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

任何想法,我怎麼可以請傳遞一個變量?

+0

只需使用[]來定義鍵。替換this.cash2 [i] .keyDataField = 0; with 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而不是什麼是在keyDataField可變

0

關鍵的第一種情況不會因爲

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

爲你工作,你想設置的關鍵keyDataField一個值和dot表示法不會爲您解析變量。

您應該使用括號符號

this.cash2[i][keyDataField] = 0; 
相關問題