从简单对象创建javascript对象

时间:2014-03-21 11:41:57

标签: javascript object

假设我有这个对象

var io={"NAME":"Battery For Alarm Panel","CODE":"POWER MAX","OWN":"ONM"}

我可以像下面那样访问

 io['NAME'] or io['CODE'] etc.

但是如果想要创建另一个对象,那么我如何访问obj如下面的代码就无法使用错误Uncaught SyntaxError: Unexpected token [

       detailObj=
        {
            io['NAME']:
            {
                io['CODE']:
                {
                    io['OWN']:"12"
                }
            }
        }

我需要在io对象中进行哪些更改才能创建detailObj

4 个答案:

答案 0 :(得分:1)

object["property"]语法用于访问对象属性,并且与对象创建的语法无关。如果要访问几个级别的对象,请按照以下示例操作:

var basket = {
    box: { 
          mobilePhone: "mobilePhone"
         }
}

要访问购物篮的mobilePhone属性,您可以使用:basket.box.mobilePhonebasket["box"]["mobilePhone"]

答案 1 :(得分:1)

您不能将JSON语法与动态密钥一起使用。

你有很多解决方案:

var detailObj = {};
detailObj[io.NAME] = {};
detailObj[io.NAME][io.CODE] = {};
detailObj[io.NAME][io.CODE][io.OWN] = "12";

var detailObj = {};
var detailObjNAME = (detailObj[io.NAME] = {});
var detailObjCODE = (detailObjName[io.CODE] = {});
detailObjCODE[io.OWN] = "12";

var detailObj = {};
((detailObj[io.NAME] = {})[io.CODE] = {})[io.OWN] = "12";

答案 2 :(得分:0)

您不能使用对象声明中的变量声明属性名称来声明这样的对象。你必须像这样创建对象:

detailObj = {};
detailObj[io['NAME']] = {};
detailObj[io['NAME']][io['CODE']] = {};
detailObj[io['NAME']][io['CODE']][io['OWN']] = "12";

答案 3 :(得分:0)

var io={"NAME":"Battery For Alarm Panel","CODE":"POWER MAX","OWN":"ONM"};

var detailObj = {};
detailObj[io['NAME']] = {};
detailObj[io['NAME']][io['CODE']] = {};
detailObj[io['NAME']][io['CODE']][io['OWN']] = "12";