假设我有以下对象:递归在对象 - 的Javascript
function recurse_object(my_obj) {
if ("top" in my_obj) {
var x = my_obj;
my_obj = { top: x };
} else {
// missing test case.
}
return my_obj;
}
:
var my_obj = {
x: 0,
y: [Object]
}
我每次调用该函数
recurse_object
我会添加另一个元素
my_obj
,并创建一个递归对象时
这样在第一次通话后my_obj
看起来像:
var my_obj = {
top: {
x: 0,
y: [Object]
}
}
到recurse_object
第二个电话会my_obj
看起来像:
var my_obj = {
top: {
top: {
x: 0,
y1: [Object1]
},
x: 1,
y2: [Object2]
}
}
的x
和y
在my_obj
值会发生变化。可能会添加新的房产y2
。因此,我将采用当前的my_obj
并将其放入top
,并将新元素复制到"new"
my_obj
。 我怎样才能在JS中完成?
_“将添加另一个元素FOO,并创建一个递归的对象:” _'foo'不会出现在'js'定义的对象或变量在问题? – guest271314
从你的目标的描述看来,'else'情况应该与'if'情况相同,换句话说,你不需要条件来检查'top'是否在'my_obj'中 –
I认为你只是想'函数f(o){return {top:o}; }'和'my_obj = f(my_obj)' – Oriol