使用键变量更新对象数组

时间:2017-05-01 05:41:21

标签: javascript

我有一个对象数组,我正在尝试根据对象的一个​​键更新数组中的值。

我很难将我的密钥存储为变量。

在这种情况下,对象看起来像是

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;
    };

有关如何传递变量的任何想法吗?

2 个答案:

答案 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;