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

为何访问JavaScript对象属性值得到单个字母?如何修复?

JavaScript代码问题分析及修复

问题原因

这段代码的核心问题是误用了Object.values()方法:

  • 循环里的game[team]其实已经直接取到了game对象里的球队名称字符串(比如game['team1']就是"Bayern Munich")。
  • 但Object.values()是用来提取对象的属性值数组的,当传入字符串时,JS会把字符串当成类数组对象处理,把每个字符拆成单独的数组元素,控制台输出时数组会被自动转成逗号分隔的格式,于是就出现了球队名称被拆成单个字母的情况。

修复方法

完全不需要使用Object.values(),直接调用game[team]就能拿到完整的球队名称字符串——因为team变量对应的就是game对象里的team1/team2属性名,直接取值即可。

修复后的代码

const game = {
  team1: "Bayern Munich",
  team2: "Borrussia Dortmund",
  odds: {
    team1: 1.33,
    team2: 6.5,
  },
};

for (const [team, odd] of Object.entries(game.odds)) {
  console.log(`Odd of victory ${game[team]}: ${odd}`);
}

修复后的控制台输出

Odd of victory Bayern Munich: 1.33
Odd of victory Borrussia Dortmund: 6.5

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 02:25:44