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

如何从JavaScript生成的Stats对象中提取各条目的数值并解决match报错问题

错误原因

你构造的{Stats:Object.fromEntries(['d'].map(s=>[s,teamsToPlay[0][s]]))}是对象类型,而match()是仅字符串类型支持的方法,对象调用不存在的方法自然会抛出该错误。

正确提取方式

场景1:单独提取单个字段的数值

不需要绕复杂写法,直接读取teamsToPlay对应的属性即可:

// 提取d字段
const d = teamsToPlay[0].d;
// 提取score字段
const score = teamsToPlay[0].score;

场景2:一次性提取所有Stats对应字段的数值

先构造目标Stats对象,再用Object.values()获取所有值的数组:

// 构造目标Stats对象
const stats = Object.fromEntries(['score','count','w','l','d'].map(s=>[s,teamsToPlay[0][s]]));
// 提取所有值到数组,结果为 [123, 22, 12, 10, 0]
const statValues = Object.values(stats);

场景3:必须用正则匹配提取(仅特殊需求时使用)

先将对象转为JSON字符串再调用match():

const d = Number(
  JSON.stringify({Stats:Object.fromEntries(['d'].map(s=>[s,teamsToPlay[0][s]]))})
  .match(/\d+/)[0]
);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 03:45:05