Javascript 向对象添加多个元素

Javascript 向对象添加多个元素,javascript,object,Javascript,Object,我有以下代码: var keyword = "foo"; var business_type = "bakery"; var int = "1"; var text = "bar"; keywords[keyword] = {business_type : {int : { 0 : text}}}; keywords对象已存在并且具有内容。所以我只想给它添加一些东西。 我希望输出是如下所示的对象: var keywords = {"foo" : {"bakery" : { "1" : { 0

我有以下代码:

var keyword = "foo";
var business_type = "bakery";
var int = "1";
var text = "bar";
keywords[keyword] = {business_type : {int : { 0 : text}}};
keywords对象已存在并且具有内容。所以我只想给它添加一些东西。 我希望输出是如下所示的对象:

var keywords = {"foo" : {"bakery" : { "1" : { 0 : "bar"}}}};
(不确定我对输出的描述是否正确,但我想你会明白的) 但是我得到了这样的输出

var keywords = {"foo" : {"business_type" : { "int" : { 0 : "bar"}}}};
所以我猜代码认为我的关键变量(business_type,int)是字符串。如何可以接受变量值而不是字符串

keywords[keyword][business_type][int] = {0:text};
还是更安全的方法

keywords[keyword] = {};
keywords[keyword][business_type] = {};
keywords[keyword][business_type][int] = {0:text};

您可以采用任何一种方法。

您必须使用数组表示法并初始化对象的每个级别:

var关键字=“foo”;
var business_type=“面包房”;
var int=“1”;
var text=“bar”;
var关键字={};
关键词[关键词]={};
关键词[关键词][业务类型]={};
关键词[关键词][业务类型][int]={0:text};
var out=JSON.stringify(关键字,null,3);
控制台。注销;

文件。写入(“”+输出+“”)不可能像您那样使用变量来声明对象的属性。尝试使用括号:

keywords[keyword] = {"bakery" : {"1" : { 0 : text}}};
或显式写入属性:


int是保留字。例如,使用var i=“1”;相反,var int=“1”;将变量名从int改为其他名称else@Kaiser:不,不是。引用是不可靠的。到处都没有定义,这里的答案很差。@ShanShan:这是正确的,但前提是有一些知识。@Amadan它被编辑过,我在评论第一版:太糟糕了,你去掉了
{[…]:…}
符号。。。“它提供了信息。@Amadan我没有删除它,只是在编辑时弄糊涂了。
keywords[keyword] = {"bakery" : {"1" : { 0 : text}}};