Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用枚举写入JSON的键_Javascript_Json - Fatal编程技术网

Javascript 使用枚举写入JSON的键

Javascript 使用枚举写入JSON的键,javascript,json,Javascript,Json,我尝试使用枚举来提取字符串,例如: var INGREDIENT = { COFFEE: "coffee"} 后来,我想为配料制定一个成本标准 var COST = { coffee: 1 } 但是我想提取咖啡来使用字符串:配料 var COST = {INGREDIENT.COFFEE: 1 }; //target 但是它显示了一个错误,是不正确的 我在求助于: var COST= {}; COST[INGREDIENT.COFFEE] = 1; 是否有我正在做的事情,阻止我像ES2

我尝试使用枚举来提取字符串,例如:

var INGREDIENT = { COFFEE: "coffee"}
后来,我想为配料制定一个成本标准

var COST = { coffee: 1 }
但是我想提取咖啡来使用字符串:配料

var COST = {INGREDIENT.COFFEE: 1 };  //target
但是它显示了一个错误,
是不正确的

我在求助于:

var COST= {};
COST[INGREDIENT.COFFEE] = 1;

是否有我正在做的事情,阻止我像ES2015中您可以编写的那样执行我的
//target

var COST = { [INGREDIENT.COFFEE]: 1 };
但是,旧版本的JavaScript(仍然非常常用)不允许这样做,唯一的选择是通过
[]
符号使用单独的赋值,如OP:

var COST= {};
COST[INGREDIENT.COFFEE] = 1;
如果您不喜欢它是两个表达式,您可以随时利用函数的魔力:

var COST = function() {
  var value = {};
  value[INGREDIENT.COFFEE] = 1;
  return value;
}();

当然,这很难看,但如果你真的需要将一些对象构建代码压缩到只能传递表达式的上下文中,最好知道这一点。

对于那些不运行旧版本js的用户来说,什么是好的跨浏览器解决方案?@cale_b OP在“我在求助于:示例:单独的作业。谢谢。我想我在想,如果你能为其他来找这个的人解释清楚,你的答案会更全面/更清晰。@Pointy,那么这在say:Google Chromes JS console?@fallereneaper是的,但要注意的是,你在浏览器控制台中的词法范围有点奇怪。也许你可以使用我在答案中添加的匿名函数hack。