假設我有以下對象:遞歸在對象 - 的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