答案:
1、B
2、C
3、 B D
4、ABCD
5、C
6、
7、
10、
递归及函数调用本身,就可能形成递归,间接调用本身也是递归
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
/*
//1. 编写一个map函数,map(a, 8); 实现功能为: 将数组a的每一个元素都加上8
(function map(a,num){
console.log("原来的数组:"+a); //打印初始数组
for(var i in a) //遍历数组
a[i]+=num; //将数组中的每个元素+num
console.log("处理后的数组: "+a); //输出处理后的数组
})([1,2,3,4],8); // 传值,并自运行
---------------- ---------------------------------------------------*/
/*
//2. 编写一个map函数,map(a, 8); 实现功能为: 将数组的每一个元素都加上8 ,并返回新的数组副本,同时确保原有数组不会被改变。
function map(a,num){
var copy_a=[]; //定义一个数组用来存储结果
for(var i in a) //遍历数组a
copy_a.push(a[i]+num); //将原数组的值加上num后存入新数组中
return copy_a; //返回新数组
}
var a=[1,2,3,4];
console.log("新的数组副本: "+map(a,8)); //输出处理后的数组
console.log("原来的数组: "+a);
---------------- ---------------------------------------------------*/
/*
//3. 现有数组list = [{name:”王尼玛”, score: 87}, {name:”王大锤”, score:92}.........] ,长度为10,
// 其中每个对象包含了学生的姓名及成绩,请求出所有学生的平均成绩,并按照成绩从低到高对数组进行排序。(数据自行补充)
function Person(name,score){ //定义一个人员类,属性为姓名及成绩
this.name=name;
this.score=score;
}
var list=new Array(); //定义数组保存人员信息
var avg_score=0; //用来存取平均分
list.push(new Person("王尼玛",87)); //将人员信息存入数组
list.push(new Person("王大锤",92));
list.push(new Person("佐助",100));
list.push(new Person("小樱",77));
list.push(new Person("鸣人",55));
list.push(new Person("雏田",87));
list.push(new Person("小李",78));
list.push(new Person("油女智乃",84));
list.push(new Person("宁次",96));
list.push(new Person("鹿丸",93));
list.sort(function(x,y){ //自定义排序,按成绩从低到高排序
return x.score-y.score;
});
for(var i in list){ //遍历数组,查看排序结果,并累加人员分数
console.log("姓名: "+list[i].name+" 得分 "+list[i].score);
avg_score+=list[i].score;
}
avg_score/=list.length; //累加分/人员数=平均分
console.log("平均分为: "+avg_score);
---------------- ---------------------------------------------------*/
/*
//4.如果有一个二维数组var a = [1,2,[3,4,5],6,[7,8],9]; 请使用循环或者递归的形式将数组中的元素,按照1~9的顺序打印出来。
var a = [1,2,[3,4,5],6,[7,8],9];
//方法一:递归
function print(arr){ //定义打印函数,应用递归
if(!isNaN(arr)) //当arr为数字时结束递归并输出
console.log(arr);
else{ //即当arr不为数字,此例中为数组
for(var i in arr) //遍历并递归
print(arr[i]);
}
}
print(a);
//方法二:循环
function print2(arr){
for(var i in arr){
if(!(arr[i] instanceof Array)) //当arr[i]不是数组时,即输出当前数
console.log(arr[i]);
else{
for(var j in arr[i]) //遍历arr[i]
console.log(arr[i][j]);
}
}
}
print2(a);
---------------- ---------------------------------------------------*/
/*
//5.现有数组 var a = [1,2], var b = [3],编写函数merge(arr1, arr2),合并数组a和b,并返回合并后的新数组。不允许使用concat方法
var a = [1,2];
var b = [3];
function merge(arr1,arr2){
var new_arr=[]; //定义新数组,保存结果
new_arr=arr1.slice(0,arr1.length);//使用slice函数返回arr1的所有元素,并且不破坏arr1原有的元素
for(var i of arr2) // 遍历数组arr2,将其中元素添加到new_arr中
new_arr.push(i);
return new_arr;
}
console.log(merge(a,b));
---------------- ---------------------------------------------------*/
</script>
</head>
<body>
</body>
</html>