递归,复制对象,找质数,判断数组

时间:2022-12-09 21:58:29
//递归
var add = 0;

//递归求和
function sum(n){


if( n <= 0 ){

return n;
}

return n + sum(n-1);
}


console.log( sum(3) );


//复制对象
var obj = {
a:1,
arr:[1,2,3],
obj:{
s:'string',
arr1:[{a:1},{b:2},{c:3}]
}
};

var copyObj = JSON.parse( JSON.stringify( obj ) );

obj.a = 2;

//console.log( copyObj , obj );


//判断数组和对象类型
var arr = [];

var obj = {};

function fn(){};

console.log( typeof fn ); // function

console.log( obj.constructor === Object ); //true 判断实例的构造函数

console.log( arr instanceof Array ); // 判断arr是否是Array 的实例

console.log( Object.prototype.toString.call(arr) ); // 返回字符串 [object Array]


//1000以内最大的质数
var nums = [];
for( var i = 1000; i > 0; i-- ){

if(isPrime( i )){

nums.push(i);
}
}

//检测是否是质数
function isPrime( num ){
num = Number(num);
if( !num || isNaN(num) ){

return false;
}

if( num == 2 || num == 3 ){

return true;
}

if( num <= 1 ){

return false;

}

for (var i = 2; i < num; i++) {

if( num%i === 0 ){

return false;
}
}

return true;
}

console.log( nums );