来自字符串属性和值的Javascript对象

时间:2012-10-05 18:26:08

标签: javascript

是否可以根据字符串值创建属性。

我有一个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
}

来自字符串

1 个答案:

答案 0 :(得分:1)

您的问题并不完全清楚您要尝试做什么,但也许您只需要知道使用[variable]语法来使用字符串来处理属性名称。

示例:

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

这相当于:

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

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