我希望以下三个关联数组是相同的:
arr1 = { "dynamic":"foo", "bar":"baz" };
key = "dynamic";
arr2 = { key:"foo", "bar":"baz" };
arr3 = {};
arr3[key] = "foo";
arr3["bar"] = "baz";
在上面的例子中,arr1
和arr3
是相同的,但是arr2
是不同的。
在JavaScript关联数组的声明中是否可能使用动态键?我希望以下三个关联数组是相同的:
arr1 = { "dynamic":"foo", "bar":"baz" };
key = "dynamic";
arr2 = { key:"foo", "bar":"baz" };
arr3 = {};
arr3[key] = "foo";
arr3["bar"] = "baz";
在上面的例子中,arr1
和arr3
是相同的,但是arr2
是不同的。
在JavaScript关联数组的声明中是否可能使用动态键?现在可以在支持ES6字面缩写的任何浏览器/平台中,在声明JavaScript对象时使用动态键:
key = "dynamic";
arr2 = {
[key]: "foo", // "dynamic": "foo"
"bar": "baz"
};
[]
语法适用于动态键,你不能在字面值中使用它们。因此,答案是否定的。[]
语法添加动态键。通常,这比为所有元素使用.
或[]
符号更美观。var field='name';
var ourVar={};
ourVar[field] = 'Somethig';
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}
};