在JS中找到路线的最快方法是什么?

问题描述 投票:1回答:2

我正在写一个小路由器,只是路由像/user/info这样的路径而没有任何特殊的正则表达式或字符串中的变量。我目前的实现看起来像

let routes = {
  user: {
     path: "/user",
     routes: {
         info: {
             path: "/user/info",
             routes: {}
         }
     }
  }
};

然后它基本上将自己视为链表,并按对象名称查找对象,如routes["user"]["info"];有一些更快的方法来做我不知道的路由吗?我找不到任何东西。

javascript
2个回答
0
投票

在给定的代码中,routes["user"]["info"]未定义。

建议:您可以为查找创建map

首先寻找“用户”,然后寻找其路线“信息”。


-1
投票

我想没有人真正理解我的问题。无论如何,似乎在JS中找到“东西”的最快方法,即/user/add这样的路线,是

  1. 使用switch字符串语句
  2. 使用if语句字符串
  3. 使用switch语句数字
  4. 使用if语句
  5. 使用字符串地图(哇!)

以上5种方法都具有相同的速度。地图与原始字符串的switch语句一样快的事实是惊人的。众所周知,使用对象反射是无法忍受的缓慢。万岁,谁创造了地图!使用具有对象反射的数字真的非常非常慢,这也是令人惊讶的。也许是因为每个数字都必须转换为字符串键?不确定。

无论如何,使用地图!

这是我的js perf

It also seems to scale

© www.soinside.com 2019 - 2024. All rights reserved.