我目前正在对转换此对象哈希感到头疼:
"food": {
"healthy": {
"fruits": ['apples', 'bananas', 'oranges'],
"vegetables": ['salad', 'onions']
},
"unhealthy": {
"fastFood": ['burgers', 'chicken', 'pizza']
}
}
像这样:
food:healthy:fruits:apples
food:healthy:fruits:bananas
food:healthy:fruits:oranges
food:healthy:vegetables:salad
food:healthy:vegetables:onions
food:unhealthy:fastFood:burgers
food:unhealthy:fastFood:chicken
food:unhealthy:fastFood:pizza
从理论上讲,它实际上只是在跟踪路径和最终结果的同时遍历对象。
不幸的是,在我完成所有嵌套之前,我不知道如何循环。
var path;
var pointer;
function loop(obj) {
for (var propertyName in obj) {
path = propertyName;
pointer = obj[propertyName];
if (pointer typeof === 'object') {
loop(pointer);
} else {
break;
}
}
};
function parse(object) {
var collection = [];
};
有两个问题相互影响:
- 如果我使用递归编程,它会丢失已经解析的属性的状态。
- 如果我不使用它,我将无法解析无限。
有什么想法如何处理吗?
问候