0

是否可以基于字符串值创建属性。

我有一个 Json 对象,用于填充 UI(选择框)。

"Conf" :{
    "Color":[
        {
            "Value":"BLUE"
        },
        {
            "Value":"GOLD"
        }   
    ],
    "Size":[
        {
            "Value":"12"
        },
        {
            "Value":"11"
        }
    ],
}

根据选择,我需要将其添加到对象(Item.Conf如下)。 addSel提供选择类型(Color, Size等)和值(BLUE, 11等)。如何添加选择,如下所示。所以如果选择是Color : BLUE,我需要添加它 Item.Conf[0].Color.Value = "BLUE" 是否可能?

Item = {
    Conf: [],
    addSel: function(type, val){ //for example type="Size", val = "11"

        //.... need to selection to Conf 
        // add a member "Size" from type string
        //set its value as val
        console.log(Conf[0].Size.Value) //=> 11
    }
}

本质上是有可能使一个对象像

"Size":{
    "Value": 11
}

从字符串

4

1 回答 1

1

您的问题并不完全清楚您到底要做什么,但也许您只需要了解使用[variable]语法来使用字符串来寻址属性名称。

例子:

var x = {};
var propName = "Value";
x[propName] = 11;

这相当于:

var x = {};
x.Value = 11;

但是,第一种形式允许属性名称是在您编写代码时未知的变量中的字符串,而第二种形式只能在提前知道属性名称时使用。

于 2012-10-05T18:49:36.283 回答