首先我们定义数组!
var items = ['10','20','30','40'];
然后我们取出一个值
var shaqunzhu=items[Math.floor(Math.random()*items.length)]; console.log(shaqunzhu);
或者我们也可以取出多个值!
function getRandomArrayElements(arr, count) { var shuffled = arr.slice(0), i = arr.length, min = i - count, temp, index; while (i-- > min) { index = Math.floor((i + 1) * Math.random()); temp = shuffled[index]; shuffled[index] = shuffled[i]; shuffled[i] = temp; } return shuffled.slice(min); } var items = ['1','2','4','5','6','7','8','9','10']; console.log(getRandomArrayElements(items, 4) );
里面涉及到随机数的观点!
b = Math.ceil(Math.random()*10);
Math.random()是随机0-1的随机数!
Math.ceil是大于等于里面数的一个整数!
其他参考
常规算法
**/ function getArrItem(arr, num) { var temp_array = new Array(); for (var index in arr) { temp_array.push(arr[index]); } var return_array = new Array(); for (var i = 0; i < num; i++) { if (temp_array.length > 0) { var arrIndex = Math.floor(Math.random() * temp_array.length); return_array[i] = temp_array[arrIndex]; temp_array.splice(arrIndex, 1); } else { break; } } return return_array; }
洗牌的算法
/** 随机化原数组 **/ function shuffle(array) { var m = array.length, t, i; // 如果还剩有元素… while (m) { // 随机选取一个元素… i = Math.floor(Math.random() * m--); // 与当前元素进行交换 t = array[m]; array[m] = array[i]; array[i] = t; } return array; } //用法 var message = shuffle(totalArr); message = message.slice(0, 3);
根据提供数值算出结果的!
function getNumber(count){ var init = 20; var num = "0%"; var count = count ? count : parseInt(Math.random()*(120-30)+30); return num = count >= 120 ? "90%" : (count-init).toString().slice(0,1)+"0%"; }