[英]Javascript: variable as array key
我是构建和数组,其中我的数组键是来自这样的变量:
var art = $('#article_id').val();
var stk = $('#stk').val();
elements ={ art : stk };
alert(elements[art]);
但我最终得到这个输出art=>50
而不是5123=>50
ES 2015通过称为计算属性名称的功能为此提供支持(尽管规范的相关部分称为“对象初始化程序”)。
简单地说,用方括号包围变量(通常是任何表达式)来评估它并将结果用作属性名称。 在你的例子中
elements = { [art]: stk };
你不能像这样创建对象文字。 你需要写
elements = {};
elements[art] = stk;
elements = { art: stk }
不起作用的原因是因为它等同于elements = { "art": stk }
(带引号)。 这两个版本在JavaScript中是等效的,只要art
是一个合法的标识符,第二个版本清楚地说明了正在发生的事情。
使用下面的方法向对象添加动态键。
elements = {};
elements[art] = stk;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.