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

如何重定义对象属性键以移除前缀‘Class’?

对象键名批量去除前缀的简便实现方法

这里有几种简便的实现方式,根据你的场景选择即可:

1. 解构赋值直接重命名(适合键数量少且固定的情况)

如果对象的键数量不多且固定,直接通过解构赋值重命名是最直观的方式:

const originalObj = { 
    ClassName: "John",
    ClassEmail: "john@doe.com",
    ClassPhone: "1234567"
};

// 解构时直接将带前缀的键重命名为目标键名
const { ClassName: Name, ClassEmail: Email, ClassPhone: Phone } = originalObj;
const newObj = { Name, Email, Phone };

console.log(newObj);
// 输出:{ Name: "John", Email: "john@doe.com", Phone: "1234567" }

2. 批量遍历转换(适合键数量多或前缀统一的情况)

如果对象有大量带统一前缀的键,用Object.fromEntries结合遍历处理更高效:

const originalObj = { 
    ClassName: "John",
    ClassEmail: "john@doe.com",
    ClassPhone: "1234567"
};

const newObj = Object.fromEntries(
    Object.entries(originalObj).map(([key, value]) => {
        // 移除键名开头的"Class"前缀
        const newKey = key.replace(/^Class/, '');
        return [newKey, value];
    })
);

console.log(newObj);
// 输出:{ Name: "John", Email: "john@doe.com", Phone: "1234567" }

正则/^Class/确保只匹配键名开头的前缀,避免误删键名中间的相同字符。

3. 固定长度前缀截取(已知前缀长度时更高效)

因为前缀"Class"是固定的5个字符,也可以直接用slice截取键名的后半部分:

const originalObj = { 
    ClassName: "John",
    ClassEmail: "john@doe.com",
    ClassPhone: "1234567"
};

const newObj = Object.keys(originalObj).reduce((result, key) => {
    // 从索引5开始截取,跳过"Class"前缀
    result[key.slice(5)] = originalObj[key];
    return result;
}, {});

console.log(newObj);
// 输出:{ Name: "John", Email: "john@doe.com", Phone: "1234567" }

这种方法不需要正则,执行效率更高,适合前缀长度固定的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 21:20:28