-
[郑州|荣耀师兄]PM-陈静雯3
方法类似数组乱序,定义一个新的空数组,把原数组中随机取得的元素添加到新的数组中,并且在原数组中删除已经获取的元素,循环三次返回新的数组,数组中就是随机获取的三个不重复的数值。
function numrandom(){var blocks=[0,1,2,3,4,5,6,7,8];var newblock=[];var runNum=3;for(k=0;k<runNum;k++){var ran= Math.round(Math.random() *(blocks.length-1));newblock.push(blocks[ran]);blocks.splice(ran, 1);}return newblock;}编辑于2018-06-29 -
[深圳|结业弟子]JS-钟楚炯0编辑于2018-02-23
-
[武汉|荣耀师兄]JS-张智0
可以用洗牌算法,我这里有的是定义一个数组,取一个数放到新数组,把之前的数删掉,然后继续取
function boxnum() {var box = [0, 1, 2, 3, 4, 5, 6, 7, 8];var newbox = [];var runnam = 3;for (k = 0; k < runnam; k++) {var ran = Math.round(Math.random() * (box.length - 1));newbox.push(box[ran]);box.splice(ran, 1);};console.log(newbox);return newbox;}编辑于2018-09-28 -
[上海|结业弟子]JS-燕赤霞0var num = new Array();for (var i = 0; i < 3; i++) {var number = Math.floor(Math.random() * 9);if (num.indexOf(number) < 0) {num.push(number);} else {i--;}}
这是我做任务一用到的方法
定义一个数组存数据。
利用math方法,取出一个0-8的数。
利用if进行判断,如果符合条件,把数放到数组里。if的判断依据是 indexof方法,如果数组里没有这个数,则返回的值未-1,这样可以避免数值的重复。
然后利用for循环取出三个数,放到数组中。
编辑于2018-10-05 -
[北京|结业弟子]JS-肖明明0
var N = 9;
//随机选择盒子
function selectBox() {
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8,];
var ranNum = N;
result = [];
for (var i = 0; i < ranNum; i++) {
var ran = Math.floor(Math.random() * (arr.length - i))
result.push(arr.splice(arr[ran], 1)[0]);
}
}
参考:https://blog.csdn.net/u011277123/article/details/72468002
编辑于2019-06-11 -
[武汉|结业弟子]JS-刘平0编辑于2019-11-11
- 去第 页