0

我有这样的东西(数据应该是一个全局变量):

var data = {
    fields:{
      id: 0,
      ticket: 0,
      description: 0,
    }
}

现在我想用这样的东西来改变这些变量:

function toggleStatus(element) {
data[fields][element] = 1;
}

当然,这不起作用,但是以类似方式操作数据的正确方法是什么?

基本上,我需要创建一个多维数组,根据用户输入改变它的状态。

4

3 回答 3

2

这应该可以正常工作,但是您必须fields用引号引起来:

data['fields'][element] = 1;

或者

data.fields[element] = 1;
于 2013-09-26T15:14:49.977 回答
0

如果element作为字段属性的名称之一传入,这应该可以工作。

尝试:

data['fields']['id'] = 1;

也许这会起作用?

于 2013-09-26T15:15:05.900 回答
0

请注意,如果您正在处理对象数组,它看起来更像这样:

  var data = [{
        fields:[{
          id: 0,
          ticket: 0,
          description: "bar"
         },
         {
          id: 1,
          ticket: 1,
          description: "foo"
         }] 
  }];

然后你可以访问像

data[0].fields[0].id

data[0].fields[1].description = "more foo"

或者

data[0].fields[1]['description'] = "more foo"

于 2013-09-26T15:23:40.040 回答