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

JavaScript使用Object.fromEntries()返回对象键带引号如何解决?

问题根因

控制台打印的键外层带引号只是显示效果,键本身并没有额外的引号。报错的原因是user-name这类包含连字符-的键不属于合法的JS标识符,不能直接用.操作符访问。

解决方案1:不修改键名,直接用方括号访问

不需要调整参数生成逻辑,直接用方括号语法读取值即可:

// 示例访问代码
console.log(obj['user-name']); // 输出 phill
console.log(obj['user-lastname']); // 输出 smith

解决方案2:转换为驼峰命名,支持点操作符访问

如果希望用更符合习惯的.操作符访问,可以在生成对象的时候把连字符键转换为驼峰格式:

const params = window.location.search;
const searchParams = new URLSearchParams(params);
const obj = Object.fromEntries(
  Array.from(searchParams.entries()).map(([key, value]) => {
    // 连字符转驼峰逻辑
    const camelCaseKey = key.replace(/-([a-z])/g, (_, char) => char.toUpperCase());
    return [camelCaseKey, value];
  })
);

// 转换后即可用点操作符访问
console.log(obj.userName); // 输出 phill
console.log(obj.userLastname); // 输出 smith

内容的提问来源于stack exchange,提问作者Carlos Muñoz

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 12:39:03