FCC 中级算法题 Arguments Optional

2023-03-18,,

Arguments Optional


创建一个计算两个参数之和的 function。如果只有一个参数,则返回一个 function,该 function 请求一个参数然后返回求和的结果。

例如,add(2, 3) 应该返回 5,而 add(2) 应该返回一个 function。

调用这个有一个参数的返回的 function,返回求和的结果:

var sumTwoAnd = add(2);

sumTwoAnd(3) 返回 5

如果两个参数都不是有效的数字,则返回 undefined。

Closures

Arguments object

思路:

(1)如果输入的两个参数都是数字型,就直接返回两个参数之和;

(2)如果只有一个参数且这个参数为数字型,就创建一个闭包,请求第二个参数,如果第二个参数是数字型,就返回两个参数之和;

知识点:

(1)Arguments object是一个类似数组的对象, 对应于传递给函数的参数;

(2)Closures(闭包)是使用被作用域封闭的变量,函数,闭包等执行的一个函数的作用域;

(3)typeof操作符返回一个字符串,指示未计算的操作数的类型

代码:

 1 function add() {
2 if(typeof arguments[0]==="number"&&typeof arguments[1]==="number"){
3 return arguments[0]+arguments[1];
4 }else if(arguments.length===1&&typeof arguments[0]==="number"){
5 var num1=arguments[0];
6 return function sumTwoAnd(num2){
7 if(typeof num2==="number"){
8 return num1+num2;
9 }
10 };
11 }
12 }
13
14
15 add(2)(1);

FCC 中级算法题 Arguments Optional的相关教程结束。

《FCC 中级算法题 Arguments Optional.doc》

下载本文的Word格式文档,以方便收藏与打印。