在Javascript中定义嵌套对象属性

时间:2016-06-22 13:09:22

标签: javascript jquery object

我需要将JSON对象发送到需要该属性的服务器 是嵌套的。例如,数据对象可以嵌套2级深度。但是,不能简单地直接声明对象:

var foo = {};
foo.bar.bartwo = "data"; //Uncaught TypeError

我目前正试图通过手动创建嵌套对象图层来绕过这一点。

var foo = {};
foo.bar = {};
foo.bar.bartwo = "data"; //Successful 

但是,如果对象需要多级嵌套,这很快就会失控。

在Javascript或Jquery中是否有更好的方法来处理这个问题(通过简单地打高尔夫第二个代码示例不起作用)?

澄清:解决方案应该能够允许直接访问嵌套属性,没有,因此必须创建所有中间属性。

2 个答案:

答案 0 :(得分:0)

没有定义嵌套对象,即foo.bar = {}; 你不能使用或赋值给它 必须首先定义javascript对象才能使用它 否则它会给你'undefined'错误,即foo.bar未定义

答案 1 :(得分:0)

创建一个执行此操作的小方法

function nested(x, y){
nestedA="";
parts = x.split('.');
  for(i=0; i<parts.length; i++) {
    nestedA += parts[i];
    eval(nestedA + ' = {}');
    nestedA += '.';
}
eval(nestedA.slice(0,-1)+ '= "'+y+'"');
}
nested('foo.bar.bartwo', "data");