计算属性名允许用方括号包裹表达式动态生成对象键名,适用于处理第三方api返回的含中划线、空格、数字开头等非标准字段名,需确保表达式返回字符串或symbol且运行环境支持es6+。

计算属性名允许你在对象字面量中用表达式动态生成键名,特别适合处理第三方 API 返回的非标准、不可预测或带特殊字符(如中划线、点号、空格、数字开头)的字段名。
理解计算属性名的基本语法
在对象字面量中,用方括号 [] 包裹一个表达式,该表达式会在对象创建时求值,结果作为属性键名:
const key = "user-name";const obj = { [key]: "Alice" }; // { "user-name": "Alice" }
从 API 响应中提取并安全使用非标键名
第三方 API 常返回类似 {"user-id": 123, "full name": "Bob Smith", "2fa_enabled": true} 这样的结构。这些键不能直接用点号访问,但可用计算属性名映射为规范键:
- 先获取原始响应数据(例如通过
fetch或 axios) - 遍历
Object.keys(response),对每个原始键做清洗或映射(如转驼峰、去空格、加前缀) - 用计算属性名构造新对象,避免硬编码不可靠的键名
const normalized = {
["id"]: apiData["user-id"],
["fullName"]: apiData["full name"],
["is2FAEnabled"]: apiData["2fa_enabled"]
};
结合解构与计算属性名提升可读性
若需保留原始键逻辑又想简化后续使用,可在解构时用计算属性名作别名:
魔搭GPT(ModelScopeGPT)是一款AI视频创作工具,阿里达摩院推出的大小模型协同的智能助手,具备作诗、绘画、视频生成、语音播放等多模态能力。
const user = { userId, fullName };
也可封装成工具函数,自动将连字符键转为驼峰键:
function normalizeKeys(obj) {return Object.fromEntries(
Object.entries(obj).map(([k, v]) => [
k.replace(/-(\w)/g, (_, c) => c.toUpperCase()),
v
])
);
}
const safeUser = normalizeKeys(apiData); // { userId: 123, fullName: "Bob Smith" }
注意边界情况和兼容性
计算属性名在 ES6+ 环境中可用,但需确保运行时支持(现代浏览器和 Node.js ≥ 6)。特别注意:
- 表达式必须返回字符串、Symbol 或能转为字符串的值;
null或undefined会触发TypeError - 避免在计算属性名中直接写未定义变量,建议先校验或提供默认值:
[key ?? "defaultKey"]: value - 若键名含 Unicode 或控制字符,需额外转义或过滤,防止意外行为
不复杂但容易忽略。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!










