【发布时间】:2026-01-27 21:50:01
【问题描述】:
假设我有一个深度为 N 的对象,例如:
food = {
'Non-Animal': {
'Plants' : {
'Vegetables': {
...
}
},
'Minerals' : {
...
}
},
'Animal': {
...
}
}
我想在这个对象中添加“水果”类别,但我必须搜索“植物”所在的对象,然后添加它。所以我不想在一个声明中做:
food['Non-Animal']['Plants']['Fruits'] = {};
因为我想先搜索它所属的位置。
如何在迭代对象时将水果类别添加到对象中?到目前为止我所拥有的是:
addCategory(food, category, parent);
function addCategory(obj, category, parent_name) {
for (var key in obj) {
if (key == parent_name) {
obj[key][category] = {};
}
var p = obj[key];
if (typeof p === 'object') {
addCategory(p, category, parent);
} else {
}
}
}
我怎样才能修复这个例程来做到这一点,或者有更好的方法来做到这一点?
【问题讨论】:
-
您可以查看this
-
小心使用
typeof p === 'object',因为如果p是任何类型的对象,例如array,这将是真的。
标签: javascript object