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

如何将类名返回与switch匹配方法合并为单对象返回方法?

完全可以整合,整合后的实现比原来两个独立方法的维护成本更低,逻辑更统一,还能避免两边枚举值不一致的问题。

基础整合方案

你可以直接用一个方法返回类名和描述的映射对象,使用时通过JS对象的内置方法就能满足原来的两个需求:

function getCookieClassMap() {
    return {
        'optanon-category-C0001': '严格必要Cookie',
        'optanon-category-C0002': '性能Cookie',
        'optanon-category-C0003': '功能Cookie',
        'optanon-category-C0004': '定向Cookie',
        'optanon-category-C0005': '社交媒体Cookie'
    };
}

基础方案使用方式

  • 替代原class_names()方法获取所有类名数组:调用Object.keys(getCookieClassMap())即可
  • 替代原classname_output()方法获取分类描述:访问getCookieClassMap()[传入的类名] ?? '没有匹配指定类的Cookie'即可

进阶封装方案

如果想要把默认值判断逻辑也内置,不需要每次使用时单独处理,可以封装成更易用的工具对象:

const CookieClassUtil = {
    classMap: {
        'optanon-category-C0001': '严格必要Cookie',
        'optanon-category-C0002': '性能Cookie',
        'optanon-category-C0003': '功能Cookie',
        'optanon-category-C0004': '定向Cookie',
        'optanon-category-C0005': '社交媒体Cookie'
    },
    // 获取所有类名数组
    getAllClassNames() {
        return Object.keys(this.classMap);
    },
    // 获取指定类名的分类描述
    getDescription(className) {
        return this.classMap[className] ?? '没有匹配指定类的Cookie';
    }
};

封装后使用示例

// 获取所有类名数组
const allClassNames = CookieClassUtil.getAllClassNames();
// 获取指定类名的描述
const targetDesc = CookieClassUtil.getDescription('optanon-category-C0001');

方案优势

  • 维护成本低:后续新增、修改、删除Cookie分类只需要调整classMap中的键值对即可,不需要同时修改两个方法的逻辑,完全避免两边枚举值不一致的问题
  • 访问效率高:对象键值访问的时间复杂度为O(1),比原switch分支判断的效率更高,分类数量越多优势越明显
  • 代码更精简:去掉了冗余的重复枚举逻辑,可读性更高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:45:00