当键名由变量表示时如何将键分配给对象文字?

How to assign key to object literal when they keyname is represented by a variable?

也许有人可以帮我解决这个问题。

我正在从列表中提取输入元素的名称和值,就像这样的简化版本:

<ul id="options_set_1">
    <li><input name="width" value="10" /></li>
    <li><input name="height" value="20" /></li>
    <li><input name="depth" value="5" /></li>
</ul>

然后将 ul 的 ID 以及输入的名称和值分配给变量,因此最终表示为:

var optionsSet1 = "options_set_1"
var name1 = "width"
var value1 = "10"
var name2 = "height"
var value2 = "20"
var name3 = "depth"
var value4 = "5"

然后我有一个空对象,我需要按如下方式填充它:

signState = {};

signState[optionSet1] = {name1 : value1};

对象已填充,但问题是 'name1' 没有反映 "width" 的变量值。如何让对象不采用变量名并将其直接指定为键名?

与您在 optionSet1 中使用的方式相同——使用括号表示法:

signState = {};

signState[optionSet1] = {};

signState[optionSet1][name1] = value1;