Javascript對象屬性我從未想過我會在那樣的問題絆倒,但嘿你知道什麼..與變量名
var prop = 'horses'
console.log({
prop: 1
});
我怎麼能有這樣產生的對象,而不是用的屬性horses
prop
,並可能在一行中完成?因爲我可以想出一個解決方案,但是我真正想要的是一個單線。
Javascript對象屬性我從未想過我會在那樣的問題絆倒,但嘿你知道什麼..與變量名
var prop = 'horses'
console.log({
prop: 1
});
我怎麼能有這樣產生的對象,而不是用的屬性horses
prop
,並可能在一行中完成?因爲我可以想出一個解決方案,但是我真正想要的是一個單線。
您可以使用括號表示法:
var obj = {};
obj[prop] = 1;
console.log(obj);
在JavaScript中,你可以參考屬性或者通過點符號和文字名稱(foo.bar
),或括號符號與字符串名(foo["bar"]
) 。在後一種情況下,字符串可以是任何表達式的結果,包括(在您的情況下)變量引用。
...但我真正想要的是一個班輪。
作爲對象初始值設定項的一部分,沒有辦法做到這一點,但是,您必須單獨執行該操作。如果你想要一個班輪,你需要做一個函數調用,如:
console.log(makeObj(prop, 1));
其中makeObj
是
function makeObj(propName, propValue) {
var obj = {};
obj[propName] = propValue;
return obj;
}
嘗試使用JSON來創建對象:
console.log(JSON.parse("{\"" + prop + "\":\"1\"}");
沒有必要爲此啓動JSON解析器。不過創意。 –
真正的單行:'var prop =「horses」; console.log((function(o,p){o [p] = 1; return o;})({},prop));' –