检查当前 window.location.href 是否等于数组中任何字符串的更简洁方法

cleaner way to check whether or not a the current window.location.href is equal to any of the strings in the array

如果 url 等于以下 url 数组中的任何字符串,我将尝试进行重定向:

所以我做了以下事情

function redirectUser() {
  if (window.location.href === 'https://swish.com/login' || window.location.href === 'https://swish.com/register' || window.location.href === 'https://swish.com/overview') {
    window.location.replace('https://swish.com/onboard');
  }
}

但这有点难看,所以我想把 url 放在一个数组中,然后做这样的事情:

function redirectUser() {
  const urls = ['https://swish.com/login', 'https://swish.com/register', 'https://swish.com/overview' ]
for(let url of urls) {
  if (window.location.href === url) {
    window.location.replace('https://swish.com/onboard');
  }
 }
}

还有其他方法吗?如果不是,您认为哪个是更好的选择?谢谢!

您似乎已经在代码中静态拥有了所有字符串。所以你可以尝试使用 switch,它的性能比 if check here 更快。
如果您通过某种逻辑复制字符串,那么您还可以选择 Regular Expressions ,这会更快。否则,您可以坚持使用数组。

我想它会对你有所帮助

   function redirectUser() {
     const urls = ['https://swish.com/login', 'https://swish.com/register', 
      'https://swish.com/overview' ]
         if(urls.includes(window.location.href)){
         window.location.replace('https://swish.com/onboard');
        }
     }