You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript多条件判断函数的最优重构方案咨询

最优重构方案:使用对象键值映射

你当前的多if写法冗余繁琐,switch/case虽比if略优,但条目增多后仍不够高效;双数组方案确实存在致命的维护风险——新增或修改条目时极容易出现键值位置错位的问题。

最推荐的方案是用对象作为键值映射表,直接将pageName作为键,对应的urlPart作为值,这种方式直观易维护,且查找效率为O(1),远优于数组indexOf的O(n)。

基础实现

function checkURL(pageName) {
  const pageToUrlMap = {
    'something': 'main/contact',
    'anythingelse': 'administration/user',
    'another page': 'administration/country'
  };
  // 找不到对应值时返回空字符串,与原函数逻辑保持一致
  return pageToUrlMap[pageName] || '';
}

进阶优化(适合大量条目场景)

如果条目达到50条左右,建议把映射表抽离到函数外部,避免每次调用函数都重复创建对象:

// 抽离为模块级/全局常量,仅初始化一次
const PAGE_TO_URL_MAP = {
  'something': 'main/contact',
  'anythingelse': 'administration/user',
  'another page': 'administration/country',
  // 新增条目直接添加键值对即可,完全不用担心错位问题
  'dashboard': 'admin/dashboard',
  'settings': 'user/settings'
};

function checkURL(pageName) {
  return PAGE_TO_URL_MAP[pageName] || '';
}

特殊场景处理

如果需要支持大小写不敏感或字符串预处理,可在函数内先对输入做标准化:

function checkURL(pageName) {
  // 统一转为小写并去除首尾空格,兼容不同输入格式
  const normalizedPage = pageName.toLowerCase().trim();
  return PAGE_TO_URL_MAP[normalizedPage] || '';
}

内容的提问来源于stack exchange,提问作者Darksymphony

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 04:55:17