小编典典

使用字符串访问JSON或JS属性

json

我有一个像这样的JSON数组:

_htaItems = [
    {"ID":1,
     "parentColumnSortID":"0",
     "description":"Precondition",
     "columnSortID":"1",
     "itemType":0},
    {"ID":2,
     "parentColumnSortID":"0",
     "description":"Precondition",
     "columnSortID":"1",
    "itemType":0}]

我想通过将ID,列名和新值传递给函数来更新它:

    function updateJSON(ID, columnName, newValue)
    {
        var i = 0;
        for (i = 0; i < _htaItems.length; i++)
        {
            if (_htaItems[i].ID == ID)
            {
                ?????
            }
        }
    }

我的问题是,如何更新值?我知道我可以做以下事情:

 _htaItems[x].description = 'New Value'

但是出于我的原因,列名是作为字符串传递的。


阅读 344

收藏
2020-07-27

共1个答案

小编典典

在JavaScript中,您可以使用文字符号访问对象属性:

the.answer = 42;

或使用带括号的表示法,使用字符串作为属性名称:

the["answer"] = 42;

这两个语句的作用 完全相同
,但是在第二个语句的情况下,由于括号中的内容是字符串,因此它可以是解析为字符串的任何表达式(或可以强制为一个)。所以所有这些都做同样的事情:

x = "answer";
the[x] = 42;

x = "ans";
y = "wer";
the[x + y] = 42;

function foo() {
    return "answer";
}
the[foo()] = 42;

answer将对象的属性设置the42

因此,如果description在您的示例中由于它是从其他地方传递给您而不能成为文字,则可以使用方括号表示法:

s = "description";
_htaItems[x][s] = 'New Value';
2020-07-27