使对象的对象成为一个对象javascript

时间:2011-10-31 11:46:20

标签: javascript arrays object

我有一个对象,它的一些元素也是对象。如何才能使变量只是一个对象?

我的意思是我有一个包含元素的变量:

  • 名称

type是一个具有字段的对象:

  • 名称

所以我认为:

  • 名称
  • type.name(不像对象那样只是另一个变量)

PS: 当我用Firebug检查我的变量时:

name
    "fsfaf"

password
    "242342425"

name
    "XXX"

type
    Object { name="sds"}

name
    "sfs"

我们假设我用变量myVariable来保存它。我想做那样的事情:

var newVariable = somefunction(myVariable);

所以我的newVariable应该是这样的:

name
    "fsfaf"

password
    "242342425"

name
    "XXX"

type.name
    "sds"

name
    "sfs"

2 个答案:

答案 0 :(得分:4)

我也编辑了我的答案。这是一种做你想做的事情的方法:

var myVar = 
{
    name: 'myName', 
    type: { name: 'type.name' }
}

function varToNewVar(myVar)
{
    var newVar = {};

    for(var i in myVar)
    {
        if(typeof myVar[i] === 'object')
        {
            for(var j in myVar[i])
            {
                newVar[i+'.'+j] = myVar[i][j];
            }
        }
        else
            newVar[i] = myVar[i];
    }

    return newVar;
}

var newVar = varToNewVar(myVar);

但是,通过这种方式无法访问newVar.type.name,您可以访问newVar ['type.name'],我想这对于您想要完成的事情是可以的...... < / p>

P.S。在应用于实时项目等之前进行广泛测试。我想很多事情都可能出错,具体取决于您正在使用的对象。在你想要的情况下使用它应该没有问题

答案 1 :(得分:-1)

var o = {
  "name": "my_name",
  "type.name": "type's name"
}

说真的,什么?你到底想要什么?

function IAmAUselessHack(o) {
  o["type.name"] = o.type.name;
}