- 1、用递归算法实现,生成数组,长度为5且元素的随机数在2-32间不重复的值(不能超过10行)
var _set = new Set()
function createArr(){
_set.size == 5 ? (console.log([..._set])) : (_set.add((Math.random()*31+2)|0), createArr())
}
createArr()
function toCamel(str) {
return str.replace(/(\w)(_)(\w)/,( match,$1,$2,$3 )=> `${$1}${$3.toUpperCase()}`)
}
Number(num).toString(2).split('0').join('').length
let arr = [2,3]
for(let i = 4 ; i<100 ; i++){
let flag = true
for(let j=2 ; j <=i/2 ; j++){ //这里一般都会想到 i/2 ,其实最优解是 Math.sqrt(i)
if(i%j == 0){
flag = false
break
}
}
if(flag) arr.push(i)
}
console.log([...arr])
- 5、写一个简单的加密,解密算法(通过对每个字符的unicode偏移产生新的字符)
function encode(str,padding=5) {
return !str?str:str.split('').map(function(s){ return String.fromCharCode(s.charCodeAt()+padding)}).join('')
}
function decode(str,padding=5){
return !str?str:str.split('').map(function(s){ return String.fromCharCode(s.charCodeAt()-padding)}).join('')
}