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

JS自定义zero函数处理'4.0'无法返回预期值40问题求助

问题原因

  1. 入参类型不匹配:你函数的逻辑是按照数组操作编写的,但实际传入的firstDefrost是字符串类型。JavaScript中字符串属于不可变原始值,无法通过[索引] = 新值的方式修改指定位置的字符,你写的修改操作本身不会生效。
  2. 原始逻辑缺少数组转字符串的步骤:就算你传入的是数组,最终返回的也是数组格式,直接赋值给firstDefrost也不会得到你要的字符串结果。

修复后的代码

var firstDefrost = "4.0";

function zero(str) {
  // 先将字符串转为数组,支持位置修改
  const zeroArray = str.split('');
  if (zeroArray[1] == undefined) {
    zeroArray[1] = 0;
    zeroArray[2] = "";
    console.log("zero array 1 called")
  } else if (zeroArray[1] == ".") {
    zeroArray[1] = 0;
    zeroArray[2] = "";
    console.log("zero array 2 called" + zeroArray)
  }
  // 将处理完的数组拼接为字符串返回
  return zeroArray.join('');
}

firstDefrost = zero(firstDefrost);

运行后firstDefrost的值就是你预期的40。

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

相关产品推荐
方舟 Agent Plan

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

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