我有這樣的代碼。有沒有在JavaScript對象文字中使用變量鍵的方法?
var key = "anything";
var object = {
key: "key attribute"
};
我想知道是否有辦法用「任何東西」代替key
。
像
var object = {
"anything": "key attribute"
};
我有這樣的代碼。有沒有在JavaScript對象文字中使用變量鍵的方法?
var key = "anything";
var object = {
key: "key attribute"
};
我想知道是否有辦法用「任何東西」代替key
。
像
var object = {
"anything": "key attribute"
};
是。您可以使用:
var key = "anything";
var json = { };
json[key] = "key attribute";
或者只需使用第二種方法,如果您在編寫程序時手頭有值。
那麼,有沒有「直接」的方式做到這一點...
但是這應該這樣做:
json[key] = json.key;
json.key = undefined;
它有點棘手,但嘿,它的工作原理!
這應該做的伎倆:
var key = "anything";
var json = {};
json[key] = "key attribute";
在ES6,使用computed property names。
const key = "anything";
const object = {
[key]: "key attribute"
// ^^^^^ COMPUTED PROPERTY NAME
};
請注意圍繞key
的方括號。實際上,您可以在方括號中指定任何表達式,而不僅僅是一個變量。
這應該是新的接受的答案 – Phoenix 2016-01-11 06:17:06
工作在鍍鉻井。最簡單和最好的答案(y) – 2017-08-16 13:11:46
閉合對此非常有效。
function keyValue(key){
return function(value){
var object = {};
object[key] = value;
return object;
}
}
var key = keyValue(key);
key(value);
封閉僅僅是這裏使用的機制。這個概念是HOF。 – 2017-04-17 17:12:53
解決方案:
var key = "anything";
var json = {};
json[key] = "key attribute";
最近需要一種解決方案如何設置Cookie傳遞的動態JSON鍵值。 使用https://github.com/js-cookie/js-cookie#json,它可以很容易地完成。 希望將每個選定的用戶選項值存儲在cookie中,因此在選項卡或瀏覽器關閉時不會丟失。
var json = {
option_values : {}
};
$('option:selected').each(function(index, el) {
var option = $(this);
var optionText = option.text();
var key = 'option_' + index;
json.option_values[key] = optionText;
Cookies.set('option_values', json, { expires: 7 });
});
然後你可以檢索使用
Cookies.getJSON('option_values');
每個頁面加載每個Cookie的鍵值但他想這樣做的對象文本的情況下。 – 2017-04-17 17:15:03