基础知识:
复制数组:
(1)循环遍历复制(不推荐)
代码如下:
var
arry
=
[1,5,9,7],
new_arry
=
[],
n
=
0,
len
=
arry.length
for(n<lenn++){
new_arry.push(arry[n])
}
(2)concat()
方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本
代码如下:
var
arry
=
[1,5,9,7],
new_arry
=
arry.concat()
console.log(new_arry)
(3)slice()
方法可从已有的数组中返回选定的元素
代码如下:
var
arry
=
[1,5,9,7],
new_arry
=
arry.slice(0)
console.log(new_arry)
随机数:
Math.random()
Math.random(),返回0到1的随机数,如:0.4261967441998422
个人封装函数:
代码如下:
function
getRandom(opt)
{
var
old_arry
=
opt.arry,
range
=
opt.range
//防止超过数组的长度
range
=
range
>
old_arry.length?old_arry.length:range
var
newArray
=
[].concat(old_arry),
//拷贝原数组进行操作就不会破坏原数组
valArray
=
[]
for
(var
n
=
0
n
<
range
n++)
{
var
r
=
Math.floor(Math.random()
*
(newArray.length))
valArray.push(newArray[r])
//在原数组删掉,然后在下轮循环中就可以避免重复获取
newArray.splice(r,
1)
}
return
valArray
}
var
new_val
=
getRandom({'arry':[1,6,8,0,3],'range':3})
console.log(new_val)
是不是很好用呢,非常实用的代码,这里是从本人项目中分离出来分享给大家,希望对大家有所帮助。
在写js中,我们经常遇见 js 随机函数,总结一下最近写验证码的时候 用到过的js 随机函数
Math.random()结果为0-1间的随机数(包括0,不包括1)
Math.floor( n )参数为Number 类型 ,函数结果 为num 的整数部分
Math.round( n ) ; 参数为Number 类型。函数结果 为num 四舍五入部分
Math.ceil( n )参数为Number类型。 函数结果为大于等于n的整数
Math.ceil(Math.random()*10) : 主要获取1到10的随机整数,取0的几率极小。
Math.round(Math.random()) : 可均衡获取0到1的随机整数
Math.round(Math.random()*10) 可基本均衡获取0到10的随机整数,其中获取最小值0和最大值10的几率少一半
Math.floor(Math.random()*10) 可均衡获取0到9的随机整数
例子:
1. 实现一个 随机 汉字
randomChi(){ // 随机生成汉字
return `\\u${Math.round(Math.random() * 20901 + 19968 ).toString(16)}`
}
2. 实现一个n - m 的整数 ( 参照于 http://www.jb51.net/article/56019.htm )
生成 n-m , 包含n 但不包含 m的整数
第一步算出 m -n的值,假设等于 w
第二步 Math.random( ) * w
第三步 Math.random() * w +n
第四步 parseInt( Math.random() * w +n, 10)
生成一个 n-m ,包含 m 但不包含 n的整数
第一步算出 m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.floor(Math.random()*w+n) + 1
生成一个不包含 n -m 但都不包含 n 和 m
第一步算出 m-n-2的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n +1
第四步Math.round(Math.random()*w+n+1) 或者 Math.ceil(Math.random()*w+n+1)
生成n-m,包含n和m的随机数:
第一步算出 m-n的值,假设等于w
第二步Math.random()*w
第三步Math.random()*w+n
第四步Math.round(Math.random()*w+n) 或者 Math.ceil(Math.random()*w+n)
实例: 生成800-1500的随机整数,包含800但不包含1500
1500-800 = 700
Math.random()*700
var num = Math.random()*700 + 800
num = parseInt(num, 10)
更多实例 请查看 https://github.com/Mrangmaomao
所有随机的东西都要用到随机数,js中是用到Math.random()这个方法,获取0~1之间的数。
1、Math.random()是令系统随机选取大于等于 0.0 且小于 1.0 的伪随机 double 值,是Java语言常用代码。例如:double a=Math.random()*(3-1)+1,设置一个随机1到3的变量。
2、生成一个4位的随机字符串代码如下:
public static void main(String[]args){String result=""
for(inti=0i<4i++){
//生成97-122的int型的整型
int intValue=(int)(Math.random()*26+97)
//将intValue强制转化成char类型后接到result后面
result=result+(char)intValue
}
//输出字符串
System.out.println(result)
}