Javascript中的动态键关联数组声明为一行
Dynamic keys in Javascript associative array declaration one-liner
我希望以下三个关联数组是相同的:
arr1 = { "dynamic":"foo", "bar":"baz" };
key = "dynamic";
arr2 = { key:"foo", "bar":"baz" };
arr3 = {};
arr3[key] = "foo";
arr3["bar"] = "baz";
在上述示例中,arr1
和arr3
相同,但arr2
不同。
是否可以在javascript关联数组的声明中使用动态键?
现在可以在任何支持ES6 literal shorthands:的浏览器/平台中,在javascript对象的声明中使用动态键
key = "dynamic";
arr2 = {
[key]: "foo", // "dynamic": "foo"
"bar": "baz"
};
只有[]
语法适用于动态键。你不能在文字中使用它们。所以你的答案是否定的,这是不可能的。
但是,您可以使用文字来创建所有静态键,然后使用[]
语法添加动态键。这通常比对所有元素使用.
或[]
表示法更漂亮。
我找到了一个解决方案。
执行以下操作:
var field='name';
var ourVar={};
ourVar[field] = 'Somethig';
来源:Javascript:变量作为数组键
既然你要求一行,试试这个:
var key = 'dynamic', obj = (function(o) { o[key]='foo'; return o;})({bar: 'baz'});
这将使obj
等于{bar: "baz", dynamic: "foo"}
var originalObj = {};//some data here
function addKeyValuePair(originalObj,key,value){
originalObj = {...originalObj,[key]:value}
};
相关文章:
- Dojo不解析自定义小部件的模板html中的小部件声明性
- 直接在函数声明上使用function.prototype.bind
- 拆分文本以每隔n个字符添加一行新行,并注意空格
- 动态插入的表:JQuery未检测到最后一行
- 获取HTML属性中CSS声明的值
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- 对API数据使用声明性绑定
- 如何在Angular UI网格中选择下一行
- 通过单击动态加载的表中同一行的另一个字段来更新一行的字段
- 可以Resharper在我的javascript函数声明中添加分号
- 如何为排除无穷大和NaN的数字声明Flow类型
- 此行是否包含函数声明
- Javascript以不同的方式声明数字
- 如何使用php文件中的GET来获取我在.js文件中声明的变量
- 使用同一对象中的其他变量声明变量
- Javascript中的动态键关联数组声明为一行
- 用对象键在一行中声明和分配函数对象
- 为什么有些变量声明在同一行,而大多数变量声明在各自的行上?
- Javascript一行多个声明和学习Javascript
- 在一行中声明多个变量