JavaScript如何实现多参数相乘函数,满足指定边界场景返回要求?
现有代码的问题
你当前的实现有两处不符合需求的逻辑:
- 无参数传入时
arguments.length为0,循环不会执行,直接返回初始值1,不符合无参数返回0的要求 - 单个参数的场景虽然
1 * 参数的数值结果可能和直接返回参数一致,但逻辑没有对齐需求,遇到非数值类型参数时会产生额外的类型转换,不符合要求
修复后的代码
function multiplyArguments() { // 无参数场景直接返回0 if (arguments.length === 0) { return 0; } // 单个参数场景直接返回该参数 if (arguments.length === 1) { return arguments[0]; } // 多参数场景计算乘积 let product = 1; for (let i = 0; i < arguments.length; i++) { product *= arguments[i]; } return product; }
内容的提问来源于stack exchange,提问作者bork
相关产品推荐
相关产品推荐

