我有一个对象,它的一些元素也是对象。如何才能使变量只是一个对象?
我的意思是我有一个包含元素的变量:
type是一个具有字段的对象:
所以我认为:
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"
答案 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;
}