如何从两个变量创建一个{key:value}对象
How to create a {key:value} object from two variables?
我想创建一个类型为{key:value}
的对象,其中键名是变量。该对象必须提供给chrome.storage.<storageType>.set(keys, function(){...})
有很多的相关问题与工作的答案,但我无法找到一个合适的问题的解释。它可以归结为在JSON对象上设置属性。我做了这个测试:
var desiredKey = "123",
desiredValue = "Value for key 123",
foo;
// 1-The basic: Using a literal
console.log({ "123": desiredValue });
// 2-The problem occurs when the key name is not a literal
console.log({ desiredKey: desiredValue });
// 3-The solution is to assign a key explicitely
foo = {};
foo[desiredKey] = desiredValue;
console.log(foo);
结果:
Object { 123: "Value for key 123" } <-- Literal
Object { desiredKey: "Value for key 123" } <-- Variable (wrong)
Object { 123: "Value for key 123" } <-- Assignment (ok)
问题:
- 方法2为什么失败?存储了什么?
desiredKey
的参考/地址? - 方法3是最简单的吗?还是有一个指令解决方案?
方法四
计算属性:
从ECMAScript 2015开始,对象初始化语法也支持计算属性名。这允许您在方括号
[]
中放入一个表达式,它将被计算为属性名。这与属性访问器语法的括号表示法是对称的,您可能已经使用它来读取和设置属性。
var desiredKey = "123",
desiredValue = "Value for key 123",
foo = { [desiredKey]: desiredValue };
console.log(foo);
相关文章:
- 如何获取文本框组的值,并使用jquery将它们放入(key:Value)数组中
- Javascript:如何迭代对象[Key:value],但跳过一些键([最快的方法])
- javascript push key value
- 从javascript中的Key/Value变量中获取值
- Javascript-如何在对象中大写key.value
- Javascript/DOM,解析Key/Value字符串
- 将key:value复制到数组Javascript的对象元素
- 如何替换Javascript key:value对象中的/name键
- 在AngularJs中绑定Key-Value对Object时,在下拉菜单中设置默认选择
- Angular ng-repeat (key, value) |按值排序
- AngularJS - Dynamic ngModel with "key.key.key..value&qu
- 为什么{key:value}["key"]不起作用?
- 如何从两个变量创建一个{key:value}对象
- 将对象映射到一行中的key=value字符串
- JavaScript Array Push key value
- 数据表传递一个带有key:value对象的js数组
- 将具有key=value对的字符串解析为JSON
- Regex:如何从'+key:value+key2:“;值+值”+'
- 我可以在jquery中把key:value作为参数发送给函数吗?
- 在angular/js的key/value对象中从value中获取对应的键