【问题标题】:JavaScript : When function passing in the argument it is returning ```NaN```JavaScript:当函数传入参数时,它返回 ```NaN```
【发布时间】:2021-07-07 06:11:23
【问题描述】:

这是我的代码问题

function abc(num,x,y){
 return num * x + " " + num * y;
}

abc(5,2,4); //returns 10 20

abc(5,abc(5,6,6),4) //doesn't return 30 30 20 

我也想知道如果我调用下面的函数(同一个函数的参数里面的函数)怎么实现-

abc(5,abc(abc(5,abc(5,6,6),abc(5,abc(5,6,6),4)))) // it must return something like how abc(5,abc(5,6,6),4) should return 30 30 20

我希望当我调用函数时,abc(5,2,abc(5,abc(5,4,4),3)) 应该每次都返回所有参数,就像 10 20 20 15 调用函数 - abc(5,2,abc(5,abc(5,4,4),3)) 如果我在函数参数/参数中放置相同的函数。

我试过了,但是当我在 abc(5,abc(5,6,6),4) 等相同的函数参数中调用函数时,function abc(num,x,y) 中的 x 变为 NaN 因此返回 NaN 20 但不是 30 30 20


如果我喜欢

 function abc(num,x,y){
if(isNaN(x)){
return x + " " + y * num ;  //now it returns 30 30 20 for abc(5,abc(5,6,6),4)
}
 return num * x + " " + num * y;
}

但是如何让这个abc(5,abc(abc(5,abc(5,6,6),abc(5,abc(5,6,6),4)))) 以与上面编辑相同的方式返回。

【问题讨论】:

  • abc(5,abc(5,6,6),4) 返回30 30 20 背后的逻辑是什么?能详细点吗?
  • 你的函数 abc 返回一个字符串类型,你试图将它与一个数字相乘,这将导致 NaN,在调用 abc 时尝试用 parseInt 强制转换它应该没问题。
  • @LakshyaThakur 问题已编辑abc(5,abc(5,6,6),4) 返回30 20 20 我想要实现的目标,但我仍在努力获取abc(5,abc(abc(5,abc(5,6,6),abc(5,abc(5,6,6),4)))) 的答案以同样的方式返回。

标签: javascript function parameters arguments


【解决方案1】:

你的函数abc(num,x,y)返回一个字符串,然后不能在下一个函数中使用算术。

【讨论】:

    【解决方案2】:

    你的函数 abc 返回一个字符串类型,你试图将它与一个数字相乘,这将导致 NaN,在调用 abc 时尝试使用 parseInt 进行转换,它应该没问题。

    function abc(num,x,y){
         return num * x + " " + num * y;
    }
        
    abc(5,2,4); //returns 10 20
        
    abc(5,parseInt(abc(5,6,6)),4) // return "150 20"
    

    【讨论】:

    • function abc(num,x,y){ if(isNaN(x)){ return x + " " + y * num ; //now it returns } return num * x + " " + num * y; } 这个做得更好,也是我真正想要实现的,但不是这个,我仍在寻找abc(5,abc(abc(5,abc(5,6,6),abc(5,abc(5,6,6),4))))
    • 好的,在上述情况下,每次你得到返回值时它仍然会有 parseInt,或者更好地将返回值包装在 parseInt 中,它适用于上述情况,如 return parseInt(num* x + " " + 数量 * y);
    猜你喜欢
    • 2021-11-22
    • 1970-01-01
    • 1970-01-01
    • 2012-09-21
    • 2019-10-20
    • 2016-03-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-14
    相关资源
    最近更新 更多