我有以下代码:
var keyword = "foo";
var business_type = "bakery";
var int = "1";
var text = "bar";
keywords[keyword] = {business_type : {int : { 0 : text}}};
关键字对象已存在且具有内容。所以我只想添加一些东西。 我希望输出是这样的对象:
var keywords = {"foo" : {"bakery" : { "1" : { 0 : "bar"}}}};
(不确定我对输出的描述是否正确,但我认为你会明白这一点) 但是我得到了这样的输出
var keywords = {"foo" : {"business_type" : { "int" : { 0 : "bar"}}}};
所以我猜代码认为我的关键变量(business_type,int)是字符串。如何取代变量值而不是字符串?
答案 0 :(得分:0)
keywords[keyword][business_type][int] = {0:text};
或更安全的方式
keywords[keyword] = {};
keywords[keyword][business_type] = {};
keywords[keyword][business_type][int] = {0:text};
你可以做任何一种方式。
答案 1 :(得分:0)
您必须使用数组表示法并初始化对象的每个级别:
var keyword = "foo";
var business_type = "bakery";
var int = "1";
var text = "bar";
var keywords = {};
keywords[keyword] = {};
keywords[keyword][business_type] = {};
keywords[keyword][business_type][int] = { 0: text };
var out = JSON.stringify(keywords, null, 3);
console.log(out);
document.write('<pre>' + out + '</pre>');
答案 2 :(得分:0)
使用变量来声明对象的属性是不可能的。尝试使用括号:
keywords[keyword] = {[business_type] : {[int] : { 0 : text}}};
或明确写出属性:
keywords[keyword] = {"bakery" : {"1" : { 0 : text}}};