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

JS替换数组字符串单引号无效 如何正确格式化目标数组元素

问题原因

你的代码没有生效,核心是两个认知偏差:

  • 定义数组时包裹内容的单引号是JavaScript的字符串语法边界符,作用是标记包裹的内容为字符串类型,这对单引号根本不是字符串实际存储的内容,所以你用正则匹配单引号替换时,找不到任何匹配项,数组自然不会有变化。
  • 你需要的处理从来不是“删除单引号”,而是把每个字符串中带小数位的数字段转成整数,再重组为目标格式。
正确实现

直接用数组map遍历处理每个元素即可:先按*把字符串拆成单独的数字段,每个段截断小数取整,再按需求拼接或者计算。
如果你的目标是保留*分隔的格式(和你给出的示例结构一致),代码如下:

const impuestos = [
  '32350.0*51355000*9999',
  '6604.5*23680102*9999', 
  '14500.0*23680202*9999' 
]

const result = impuestos.map(str => {
  return str.split('*')
    .map(seg => parseInt(seg, 10)) // 直接截断小数部分,和你示例的输出完全匹配
    .join('*')
})

console.log(result)
// 运行输出:[ '32350*51355000*9999', '6604*23680102*9999', '14500*23680202*9999' ]

如果你实际需要的是每个乘法表达式计算后的最终数值,把拼接步骤换成归并求乘积即可:

const result = impuestos.map(str => {
  return str.split('*')
    .map(seg => parseInt(seg, 10))
    .reduce((sum, cur) => sum * cur, 1)
})

console.log(result)
// 运行输出:[ 16612724250000000, 1563807613259996, 1449280809900000 ]

补充:控制台打印字符串时默认带引号是调试工具的类型区分设计,不是字符串本身包含引号。如果需要输出无引号的纯文本,直接遍历打印单个元素,或者用join拼接成字符串后打印即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 15:15:18