我有一个对象数组,我正在尝试根据对象的一个键更新数组中的值。
我很难将我的密钥存储为变量。
在这种情况下,对象看起来像是
如果我要将我的对象密钥存储为变量,它将失败并只添加新元素
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 :(得分: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
变量中的密钥
答案 1 :(得分: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;