一些简单的小算法

数组的最值

ES6写法:const A = [1,2,3,4,5]; const max = Math.max(...A);

常规写法:var max = Math.max.apply(null,A); var max = Math.max(1,2,3,,4,5)

 

生成20-30之间的随机整数

Math.round(20 + Math.random()*10)

Math.round(Math.random()*max - min + min) = Math.round(Math.random()*10 + 20)

 

判断一个数是否为素数

function is_prime(n){

if(n <=1){

return false;

}

const N = Math.floor(Math.sqrt(n));

for( let i = 2;i <= N; i++){

if(n % i === 0){

is_prime = false;

break;

}

}

return is_prime;

}


子数组和整除

slove([3,5,8],13) = true (3+5+8) / 13 = 0

 function solve(arr,n){
    const s = new Set();
    for(let i = 0;i<=arr.length;i++){
        for(let j = i+1; j<=arr.length;j++){
            const remain = arr.slice(i,j).reduce((x,y)=>x+y,0) % n;
            s.add(remain);
        }
    }
    return s.has(0);
 
数组的替换(splice用法)

const arr = [1,2,3,4,5,6];
console.log(arr.splice(2,2,'x'));//截取了3,4将[3,4]替换成'x'
console.log(arr);//1,2,'x',5,6;
arr.splice(2,1);//删除了'X';
arr.splice(2,0,'y'); //从第二位开始删除0位添加了'y'
console.log(arr);//1,2,'y',5,6

 

 

posted @ 2019-07-16 16:37  不负好时光i  阅读(293)  评论(0编辑  收藏  举报