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

//递归
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 );

posted @ 2017-09-02 12:56  若水若鱼  阅读(290)  评论(0编辑  收藏  举报