繁体   English   中英

Javascript:变量作为数组键

[英]Javascript: variable as array key

我是构建和数组,其中我的数组键是来自这样的变量:

var art = $('#article_id').val();
var stk =  $('#stk').val();
elements ={ art : stk };
alert(elements[art]);

但我最终得到这个输出art=>50而不是5123=>50

ECMAScript 2015(又名ES6 Harmony)

ES 2015通过称为计算属性名称的功能为此提供支持(尽管规范的相关部分称为“对象初始化程序”)。

简单地说,用方括号包围变量(通常是任何表达式)来评估它并将结果用作属性名称。 在你的例子中

elements = { [art]: stk };

原始答案(针对ES5)

你不能像这样创建对象文字。 你需要写

elements = {};
elements[art] = stk;

elements = { art: stk }不起作用的原因是因为它等同于elements = { "art": stk } (带引号)。 这两个版本在JavaScript中是等效的,只要art是一个合法的标识符,第二个版本清楚地说明了正在发生的事情。

使用下面的方法向对象添加动态键。

elements = {};
elements[art] = stk;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM