如何在javascript中将变量值用作对象键

4
var work = 'sample';

{ 
    "publish": {
        work: "done"
    }
}

最初的工作值为sample。如果工作的值会动态变化,我该如何将变量work传递到对象中呢?


当你说工作的值动态变化时,是指它的值是否由其他函数、操作设置? - Will Reese
1
这不是JSON - 这个问题的标签错了。 - Alnitak
3个回答

3
我假设您的对象名称为obj
var obj={ 
         "publish": {}
        }

obj.publish[work]= "done";

使用方括号,您可以使用变量定义属性。
因此,对象现在变为:
{ 
  "publish": {
      "sample": "done"
  }
}


var work = 'sample';

var obj = {
  "publish": {}
}

obj.publish[work] = "done";

document.write(JSON.stringify(obj))

请查看此代码片段


-2
//try this
var work = "sample";
var yourJSON = { "publish": { "work": work }};

work = "updated sample";
yourJSON.publish.work = work;

-2
在你的JSON结构中,“work”没有用引号括起来。这意味着单词“work”本身不起到键的作用--只有变量“work”的作为键。
在这方面,你的JSON或者上面的变量声明可能会误导。
如果你想表达的是:
{ "publish": { "work": "done" } }

然后更改“work”键的值就像这样简单:

myNewStructure = {"publish": {"work": work}}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接