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

Angular:如何按行首拆分JSON数组数据而非固定字符串

解决方案:从字符串末尾提取数字,替代固定前缀拆分

这问题很常见,核心需求就是不管第一个元素的前缀是什么,只提取它末尾的数字标识,来保持原来的映射逻辑。咱们可以用正则表达式轻松实现,修改后的代码如下:

data.forEach(test => {
  // 提取第一个元素末尾的数字部分,兼容前缀为任意字符或纯数字的情况
  const itemNumber = Number(test[0].match(/\d+$/)?.[0]);
  result.run.data.push([ itemNumber, Number(test[1]) ]);
  result.count.data.push([ itemNumber, Number(test[2]) ]);
});

代码细节解释:

  • 正则表达式/\d+$/:专门匹配字符串结尾的连续数字,其中:
    • \d+ 表示匹配1个或多个数字
    • $ 是字符串结尾锚点,确保只会取末尾的数字,不会误匹配中间的数字内容
  • match(/\d+$/)?.[0]:match方法返回匹配结果数组,?.[0]是可选链操作符,防止极端情况下没有匹配到数字导致的报错(比如第一个元素完全没有数字的情况,不过根据你的场景应该不会出现)
  • 最后用Number()把匹配到的数字字符串转成数字类型,和你原来的映射逻辑完全对齐

场景验证:

针对你给出的新数据示例:

  • "asdf1" → 提取到1
  • "fasd2" → 提取到2
  • "34227" → 提取到34227
    所有情况都能正确生成你需要的映射数组,完美替代原来的固定前缀拆分逻辑。

内容的提问来源于stack exchange,提问作者J.Doe

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:00:18