我正在编写一个小型路由器,仅路由/user/info
之类的路径,而字符串中没有任何特殊的正则表达式或变量。我当前的实现就像
let routes = {
user: {
path: "/user",
routes: {
info: {
path: "/user/info",
routes: {}
}
}
}
};
然后基本上将其自身视为链接列表,并按对象名称查找对象,例如routes["user"]["info"]
;有一些我不知道的更快的路由方法吗?我什么都找不到。
答案 0 :(得分:0)
在给定代码routes["user"]["info"]
中未定义。
建议:您可以为查询创建map
。
首先查找“用户”,然后查找其路线“信息”。
答案 1 :(得分:-1)
我猜没有人真正理解我的问题。无论如何,似乎在JS中找到“事物”(例如/user/add
之类的路线)的最快方法是
以上5种方法的速度均相同。映射与原始字符串的switch语句一样快的事实令人惊讶。众所周知,使用对象反射非常慢。为创建地图的人致敬!令人惊讶的是,将数字与对象反射配合使用确实非常慢。也许因为每个数字都必须转换为字符串键?不确定。
无论如何,使用地图!
这是我的js perf