发表于: 2021-03-11 19:50:46
1 1938
今天完成的事情:学会了如何生成三个不重复的随机数
明天计划的事情:修改任务一并提交,开始任务二
收获:
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]; //arr = (9) [0, 1, 2, 3, 4, 5, 6, 7, 8]
//定义一个数组变量
var result = []; //result = []
//定义一个空的数组,等同于var arrNum = new array();
for (var i = 0; i < 3; i++) { //需要3个值,让for循环三次
var ran = Math.floor(Math.random() * arr.length); //ran = 0, arr = (9) [0, 1, 2, 3, 4, 5, 6, 7, 8]
//生成一个0~9之间的随机数,如生成0
result.push(arr[ran]); //result = [0], arr = (9) [0, 1, 2, 3, 4, 5, 6, 7, 8], ran = 0
//push可以向数组中添加元素
var center = arr[ran]; //center = 0, arr = (9) [0, 1, 2, 3, 4, 5, 6, 7, 8], ran = 0
//定义变量存储数值
arr[ran] = arr[arr.length - 1]; //arr = (9) [8, 1, 2, 3, 4, 5, 6, 7, 8], ran = 0
//使数组内的第ran+1个值和最后一个值相等,在这里是第一个值
arr[arr.length - 1] = center; //arr = (9) [8, 1, 2, 3, 4, 5, 6, 7, 0], center = 0
//使数组内的最后一个值等于之前变量存储的数值,相当于两个值互换了位置
arr = arr.slice(0, arr.length - 1); //arr = (8) [8, 1, 2, 3, 4, 5, 6, 7]
//slice可从已有的数组中返回选定的元素,第一个参数规定从哪里开始选取
//第二个参数规定从哪里结束,这里相当于把最后一个值剔除,得到一个新的数组
//从新的数组中重复以上过程,就得到了三个不相同的随机数
};
评论