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

如何编写JavaScript的removeZeros函数?现有代码遭Mate Academy驳回

编写JavaScript的removeZeros函数

需求:实现一个名为removeZeros的函数,接收整数n,返回去除所有零后的整数。

以下是我目前的代码,但被Mate Academy平台驳回:

function removeZeros(n) {
   let nStr = n.toString();
   let nStrArr = nStr.split('');
   let nStrArrNoZeros = [];
   for (var i = 0; i < nStrArr.length; i++) {
   if (nStrArr[i] !== '0') {
   nStrArrNoZeros.push(nStrArr[i]);
   }
  }
   return parseInt(nStrArrNoZeros.join(''));
}

代码存在的问题

  • 当输入n = 0时,过滤后得到空字符串,parseInt('')会返回NaN,不符合预期(应返回0)
  • 若输入整数全为0(如n=000,JS中实际为0),同样会返回NaN
  • parseInt处理超大整数时可能存在精度丢失风险

修正后的代码方案

方案一:数组过滤+空值处理

function removeZeros(n) {
  const filteredStr = n.toString().split('').filter(char => char !== '0').join('');
  // 过滤后为空则返回0,否则转为数字
  return filteredStr ? Number(filteredStr) : 0;
}

方案二:正则替换写法

function removeZeros(n) {
  const result = n.toString().replace(/0/g, '');
  return result ? Number(result) : 0;
}

测试用例验证

  • removeZeros(10203) → 123
  • removeZeros(-100) → -1
  • removeZeros(0) → 0
  • removeZeros(1000) → 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 22:10:35