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

JavaScript函数改造:提取参数数字相乘,无数字返回指定文本

改造specialMix函数实现数字相乘逻辑

原specialMix函数原本实现参数数字求和功能,现需改造为满足以下需求的版本:

  • 接收任意数量参数,忽略不含有效数字的字符串内容
  • 仅提取所有参数中的有效数字进行相乘运算
  • 若所有参数均不含有效数字,返回"All Is String"
  • 修复原函数处理全字符串参数时无法正确返回指定内容的问题

改造后的代码实现

function specialMix(...data) {
  let result = 1;
  let hasValidNumber = false;
  
  for (const item of data) {
    const num = parseInt(item);
    // 校验提取到的是否为有效整数(排除NaN情况)
    if (!Number.isNaN(num)) {
      result *= num;
      hasValidNumber = true;
    }
  }
  
  return hasValidNumber ? result : "All Is String";
}

// 测试用例验证
console.log(specialMix(10, 20, 30)); // 输出 600
console.log(specialMix("10Test", "Testing", "20Cool")); // 输出 200
console.log(specialMix("Testing", "10Testing", "40Cool")); // 输出 400
console.log(specialMix("Test", "Cool", "Test")); // 输出 "All Is String"

关键改动说明

  • 初始化result为1:乘法的单位元是1,若初始值设为0会导致所有乘积结果为0,不符合需求
  • 新增hasValidNumber标记:用于追踪是否提取到有效数字,避免全字符串场景下错误返回1
  • 遍历逻辑优化:使用for...of简化遍历,每次提取数字后通过!Number.isNaN(num)判断有效性,有效则执行相乘操作并标记状态
  • 最终返回逻辑:根据标记判断结果,存在有效数字则返回乘积,否则返回指定字符串

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 15:40:23