求n个数字的和,5 计算1+2+3+4+5
//函数的声明
function getSum(x) {
if(x==1){
return 1;
}
return x+getSum(x-1);
}
//函数的调用
console.log(getSum(5));
求一个数字各个位数上的数字的和
//523
function getEverySum(x) {
if(x<10){
return x;
}
//获取的是这个数字的个位数
return x%10+getEverySum(parseInt(x/10));
}
console.log(getEverySum(1364));//5
求斐波那契数列
function getFib(x) {
if(x==1||x==2){
return 1
}
return getFib(x-1)+getFib(x-2);
}
console.log(getFib(12));
深拷贝
//创建对象obj1
var obj1={
name:"东方不败",
age:18,
sex:"女",
kongfu:["凌波微步","九阴神功","降龙十八掌","九阴白骨爪"],
dog:{
name:"大黄",
age:18,
sex:"女"
}
};
//一个空的对象obj2
var obj2={};
//遍历函数,传入参数
function extent(a,b) {
for(var key in a){
var item=a[key];
//判断a[key]的值是不是数组
if(item instanceof Array ){
b[key]=item;
//递归调用
extent(item,b[key]);
}
//判断是不是对象
if (item instanceof Object){
b[key]=item;
extent(item,b[key]);
}else {
b[key]=item;
}
}
}
extent(obj1,obj2);
console.log(obj1);
console.log(obj2);