给定以下数据结构:
var endpoints = {
// top level
"orders": {
url: "/orders",
// child
"sub-level": {
url: "/sublevel"
}
},
// users
"users": {
url: "/users",
// child
"another-sublevel": {
url: "/another-sublevel"
}
}
}
我如何递归遍历它并在遇到URL时生成一个“路由”对象?我还需要跟踪一个路由的父级,因此:
var Route = function(name, url, parents) {
}
在这里,name是关键字(例如,在顶层中为“orders”或“users”),url是显而易见的,“parents”则是一些在我们每个级别下钻取时生成的堆栈。
我试过几次写这个,但遇到了变量作用域/按引用传递属性与值以及各种其他奇怪的问题。
数据结构也不是固定的,但需要包含该信息。
typeof
和===
进行判断。 - Rudietypeof
的结果始终是一个字符串,所以没有必要进行类型检查...===
是好的,但并不总是必要的。在这里的某个地方解释了为什么不总是使用===
。 - Rudie