如何简化含重复三元运算符的JavaScript代码?能否分组优化?
优化方案
方案1:直接校验哈希格式(最简洁)
原代码里linkID和modalURL值完全一致,且仅需在哈希匹配#link-1至#link-5时执行函数,可通过正则校验格式后直接调用:
const modalURL = window.location.hash; // 匹配#link-1到#link-5的格式 if (/^#link-[1-5]$/.test(modalURL)) { showModal(modalURL); }
方案2:白名单列表校验
如果后续需要调整合法哈希值,用数组维护白名单会更灵活:
const modalURL = window.location.hash; const validLinks = ['#link-1', '#link-2', '#link-3', '#link-4', '#link-5']; if (validLinks.includes(modalURL)) { showModal(modalURL); }
补充说明
原代码的三元运算符写法存在冗余:(linkID = "#link-1") + showModal(linkID) 会无意义地拼接赋值结果与函数返回值,实际上你完全不需要额外赋值linkID,直接传入modalURL即可完成需求。
内容的提问来源于stack exchange,提问作者Caleby
相关产品推荐
相关产品推荐

