Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/414.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
对参数施展魔法-但仅当它们是数字时(Javascript算法)_Javascript_Algorithm_Arguments - Fatal编程技术网

对参数施展魔法-但仅当它们是数字时(Javascript算法)

对参数施展魔法-但仅当它们是数字时(Javascript算法),javascript,algorithm,arguments,Javascript,Algorithm,Arguments,问题 创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和 例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数 使用单个参数调用此返回函数将返回总和: var sumTwoAnd=相加(2) sumTwoAnd(3)返回5 如果任一参数不是有效数字,则返回undefined 我尝试的 函数相加(a,b){ 如果(a的类型)!=‘数字’){ 返回未定义; } if(arguments.length==2){

问题

创建一个将两个参数相加的函数。如果只提供了一个参数,则返回一个函数,该函数需要一个参数并返回总和

例如,addTogether(2,3)应该返回5,addTogether(2)应该返回一个函数

使用单个参数调用此返回函数将返回总和:

var sumTwoAnd=相加(2)

sumTwoAnd(3)返回5

如果任一参数不是有效数字,则返回undefined

我尝试的

函数相加(a,b){
如果(a的类型)!=‘数字’){
返回未定义;
}
if(arguments.length==2){
设tim=arguments[0]+arguments[1];
如果(!tim.isNaN){
返回tim;
}
}
else if(arguments.length==1){
返回函数(a,c){
设结果=c+a;
如果(!result.isNaN){
返回结果;
}
}
}
}
相加(2,3);
console.log(加在一起(2)([3]))

log(addTogether(2)、(3))
您需要验证所有参数是否为数字。你一开始就做对了,用
typeof a!='如果提供了第二个参数,则在检查
b
时,以及如果没有提供第二个参数,则在返回函数时,都需要在其他任何地方执行此操作

要返回函数,只需使用
return(b)=>{//logic}

函数相加(a,b){
如果(a的类型!=='number'){
返回;
}
如果(arguments.length>=2){
如果(b的类型!=='number'){
返回;
}
返回a+b;
}
//那么a是唯一的论点
返回(b)=>{
如果(b的类型!=='number'){
返回;
}
返回a+b;
};
}
console.log(addTogether(2,3));
控制台日志(加在一起(2)(3));

log(addTogether('foo'))您需要验证所有参数是否为数字。你一开始就做对了,用
typeof a!='如果提供了第二个参数,则在检查
b
时,以及如果没有提供第二个参数,则在返回函数时,都需要在其他任何地方执行此操作

要返回函数,只需使用
return(b)=>{//logic}

函数相加(a,b){
如果(a的类型!=='number'){
返回;
}
如果(arguments.length>=2){
如果(b的类型!=='number'){
返回;
}
返回a+b;
}
//那么a是唯一的论点
返回(b)=>{
如果(b的类型!=='number'){
返回;
}
返回a+b;
};
}
console.log(addTogether(2,3));
控制台日志(加在一起(2)(3));

log(addTogether('foo'))我唯一不明白的是返回(b)=>{logic}函数是如何在Javascript中成为一级成员的——您可以将它们定义为表达式,就像这里所做的那样,并传递它们。
b
是参数,
{
之后是函数体。我唯一不明白的是返回(b)=>{logic}WorkFunction是Javascript中的一级成员-您可以将它们定义为表达式,就像这里所做的那样,并传递它们。
b
是参数,
{
之后是函数体。