JavaScript优化:为多属性复用相同下拉选项字符串的方法
优化方案:复用下拉选项字符串
1. 提取重复选项,定义可复用集合
把重复出现的Tier4选项抽成单独的常量数组,让所有需要用到这些选项的Tier3选择直接引用这个数组,彻底消除代码冗余:
// 定义一次可复用的Tier4选项集合 const sharedTier4Options = [ "", // 注意原代码里的分号要改成逗号,否则会触发语法错误 "Account Creation", "Account Deletion", "Account Modification" ]; // 直接复用上述数组,无需重复编写选项 var Tier4ByTier3 = { "Choice 1": sharedTier4Options, "Choice 2": sharedTier4Options, "Choice 3": sharedTier4Options };
2. 修正原代码中的bug
原代码存在两处会导致功能失效的问题,一并修正:
- 数组元素分隔符用逗号而非分号
- 渲染函数里的
innherHTML是拼写错误,正确写法为innerHTML
修正后的渲染函数:
function ChangeDropdown4(value) { const tier4List = document.getElementById("Tier4List"); if (!value) { tier4List.innerHTML = "<option></option>"; return; } let tier4Options = ""; // 用for...of遍历数组更安全,避免意外遍历到对象原型属性 for (const option of Tier4ByTier3[value]) { tier4Options += `<option>${option}</option>`; } tier4List.innerHTML = tier4Options; }
3. 灵活扩展(可选)
如果后续有部分Tier3选项需要不同的Tier4选项,只需单独定义新集合,其他选项仍复用共享数组即可:
// 新增特殊场景的选项集合 const specialTier4Options = [ "", "Password Reset", "Permission Adjustment" ]; var Tier4ByTier3 = { "Choice 1": sharedTier4Options, "Choice 2": sharedTier4Options, "Choice 3": sharedTier4Options, "Choice 4": specialTier4Options // 单独配置特殊选项 };
这样修改后,后续更新共享选项时,所有引用它的Tier3选择会自动同步更新,无需逐一修改重复代码。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

