javascript 字典的键不是存储为值,而是存储为变量名称
Key for javascript dictionary is not stored as value but as variable name
>我正在尝试创建一个这样的字典对象
var obj = { varName : varValue };
我所期望的是,如果varName='foo'
,obj 应该是{'foo', 'some value' }
的,但我看到的是{varName, 'some value'}
变量的值没有被使用,而是使用变量名称作为键。如何使可变值用作键?
尝试如下:
var obj = {};
obj[varName] = varValue;
你不能在旧的Javascript中使用"动态"键初始化对象。 var obj = { varName : varValue };
相当于var obj = { "varName" : varValue };
。这就是Javascript的解释方式。
但是,新的 ECMAScript 支持计算属性名称,您可以执行以下操作:
var obj = { [varName]: varValue };
从 ECMAScript 2015 开始,它在去年得到了更好的浏览器支持,你可以使用变量索引表示法:
const obj = { [varName] : varValue };
这在语法上与
var obj = {};
obj[varName] = varValue;
您还可以使用表达式或符号作为属性键:
const contact = {
company: companyName,
};
const companiesWithContacts = {
[contact.company.toLowerCase()]: true
};
const myList = {
[Symbol.iterator]: createIteratorForList
};
function createIteratorForList() { ... }
相关文章:
- AngularJS-在JSON选择器中使用变量名
- 使用javascript存储变量的最安全方式
- 命令行中的Uglify js;不要弄乱变量名
- 像createComment这样的各种自定义变量名在内联javascript中被覆盖,但在外部js中没有.为什么?
- 这在JavaScript中是一个好的变量名吗
- 在javascript中,在变量名之前使用var有什么区别/优势吗
- 在Javascript中连接一个动态变量名
- 如何使用jQuery循环变量名
- JavaScript将字符串转换为变量名
- 如何在Javascript中为不同的页面访问存储变量
- 根据发送到javascript中函数的参数创建变量名
- 检索本身包含变量的 Jquery 变量名的值
- Javascript 会话存储变量未正确保存
- 服务中的角度存储变量
- 测试JavaScript是否符合异常变量名
- 动态变量名语法
- 动态jQuery变量名
- jquery没有't从DIV数据id中获取PHP变量值,只输出变量名
- Ajax jquery post发布时没有变量名
- 如何在另一个变量中存储变量名