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

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


名称
类型


type是具有字段的对象:


名称


所以我一个:


名称
type.name(不是作为对象,而是像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"

最佳答案

我也编辑了答案。这是您想要做的一种方式:

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'],我想您可以完成此操作...

附言在申请进行中的项目等之前,先进行大量测试。我想根据您所使用的对象,很多事情都会出错。虽然在您想要的情况下使用它应该没有问题

关于javascript - 使对象成为一个对象javascript,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7953266/

10-11 22:19
查看更多