第1关:用函数语句定义函数
定义一个名字为mainJs()的函数;
该函数有两个参数,均为字符串类型;
函数的功能是返回这两个参数的拼接结果;
具体请参见后续测试样例。
//请在此处编写代码
/********** Begin **********/
function mainJs(a,b) {
return a+b;
}
/********** End **********/
第2关:用表达式定义函数
定义一个匿名函数,将它赋值给变量myFunc;
该函数实现求一个三位数的各个位上的数字之和,比如123各个位上的数字分别为1、2和3,和是6;
具体请参见后续测试样例。
function mainJs(a) {
a = parseInt(a);
//请在此处编写代码
/********** Begin **********/
function myFunc(i) {
return i%10+parseInt((i%100)/10)+parseInt(i/100);
}
/********** End **********/
return myFunc(a);
}
第3关:函数的调用
mainJs()代码区上面定义了三个函数,从上到下分别编号为1、2和3;
mainJs()有三个参数a、b和c,根据a的值(函数的编号,可取的值是1、2和3)调用相应的函数(可选的函数分别是getMax()、getMin()和getSum(),具体请参考代码!),并传入参数b和c,返回得到的结果;
比如a为1表示你需要调用函数getMax();
具体请参见后续测试样例。
//求最大值的函数
function getMax(b,c) {
return b>c?b:c;
}
//求最小值的函数
var getMin = function(b,c) {
return b>c?c:b;
}
//对象中的求和函数
var myObject = {
id:1,
name:"function",
myFunc:function(b,c) {
return b+c;
}
}
function mainJs(a,b,c) {
a = parseInt(a);
b = parseInt(b);
c = parseInt(c);
//请在此处编写代码
/********** Begin **********/
if(a===1){
return getMax(b,c);
}else if(a===2){
return getMin(b,c);
}else if(a===3){
return b+c;
}
/********** End **********/
}
第4关:未定义的实参
路口有四个方向的红绿灯,其默认值分别是green、green
、red和yellow;
对于函数mainJs(a,b,c,d)的四个参数,要求在没有传入实参或者传入undefined时,其分别设置为上述默认值;
最后返回四个字符串型参数的拼接结果,字符串中间用-符号隔开,如分别传入red、red、yellow和undefined时,返回red-red-yellow-yellow;
具体请参见后续测试样例。
function mainJs(a,b,c,d) {
//请在此处编写代码
/********** Begin **********/
if(a===undefined) {
return "green-green-red-yellow";
}else{
if(b===undefined){
return a+"-green-red-yellow";
} if(c===undefined){
return a+"-"+b+"-red-yellow";
}if(d===undefined){
return a+"-"+b+"-"+c+"-yellow";
}
else{
return a+"-"+b+"-"+c+"-"+d;
}
}
return a+b+c+d;
/********** End **********/
}
第5关:实参对象
定义函数getMax();
该函数计算并返回一组整数的最大值;
整数的个数不确定;
如果整数个数为0,直接返回0;
具体请参见后续测试样例。
//请在此处编写代码
/********** Begin **********/
function getMax() {
var aLength = arguments.length;
var sum = 0;
for(var i = 0;i < aLength;i++) {
if(sum<arguments[i])
{
sum=arguments[i];
}
}
return sum;
}
/********** End **********/
function mainJs(a) {
a = parseInt(a);
switch(a) {
case 1:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123);
case 2:return getMax(23,21,56,34,89,34,32);
case 3:return getMax(23,21,56,34);
case 4:return getMax(23,21,56,34,89,34,32,11,66,3,9,55,123,8888);
case 5:return getMax();
default:break;
}
}
第6关:对象作为参数
函数objcetFunction()的参数是一个对象,该函数的功能是返回属性名1+’:’+属性值1+’,’+属性名2+’:’+属性值2+’,’+…+属性值n+’,’;
测试的时候我们会往mainJs()传入参数1或2或3,分别表示调用函数objectFunction()并传入对象参数park、computer或者city;
比如对于第一个对象park,该函数需要返回name:Leaf Prak,location:Fifth Avenue,todayTourists:4000,;
具体请参见后续测试样例。
var park = {
name:"Leaf Prak",
location:"Fifth Avenue",
todayTourists:4000
};
var computer = {
name:"Levenon",
price:"$800",
memory:"8G"
};
var city = {
name:"HangZhou",
country:"Chine",
population:9400000
}
function objectFunction(object) {
//请在此处编写代码
/********** Begin **********/
var sum="";
for(var i in object){
sum+=i +":" + object[i]+",";
}
return sum;
/********** End **********/
}
function mainJs(a) {
a = parseInt(a);
switch(a) {
case 1:return objectFunction(park);
case 2:return objectFunction(computer);
case 3:return objectFunction(city);
default:break;
}
}
第7关:函数对象
已知getOddNumber(a)求数组a中奇元素的个数,getEvenNumber(a)求数组a中偶元素的个数;
完成函数getNumber(func,a),实现:根据函数参数func的不同,求数组a中奇元素的个数或者偶元素的个数;
上一条提到的func的值只有可能是getOddNumber或者getEvenNumber。
//求数组中奇数元素的个数
function getOddNumber(a) {
var result = 0;
for(var i = 0;i < a.length;i++) {
if(a[i]%2 != 0)
result++;
}
return result;
}
//求数组中偶数元素的个数
function getEvenNumber(a) {
var result = 0;
for(var i = 0;i < a.length;i++) {
if(a[i]%2 == 0)
result++;
}
return result;
}
function getNumber(func,a) {
//请在此处编写代码
/********** Begin **********/
return func(a);
/********** End **********/
}
//测试接口
function mainJs(b,a) {
a = a.split(",");
var aLength = a.length;
for(var i = 0;i < aLength;i++) {
a[i] = parseInt(a[i]);
}
if(b == "getEvenNumber") {
return getNumber(getEvenNumber,a);
} else {
return getNumber(getOddNumber,a);
}
}