假設我有一個深度-N的對象,如:使用Javascript - 遍歷像對象樹,並添加一個關鍵
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 {
}
}
}
我該如何解決這個例程做到這一點或有沒有更好的方式來做到這一點?
您可以檢查[這](https://stackoverflow.com/a/39300560/4543207) – Redu
注意使用'typeof運算p === object''因爲如果' p'是任何類型的對象,比如'array',這是對的。 –