[英]Array with random unique integer numbers (0 to array.length - 1)
这个问题是如何生成所有唯一固定 integer 数字的数组,其中最高等于数组的长度 - 1。
结果数组的示例: [3, 6, 4, 2, 1, 5, 0]
这个不是: [3, 16, 4, 22, 19039, 555, 0]
首先填充一个顺序数组,然后通过在 compareFunction 中返回随机结果进行排序。
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort
let arrLen = 7, resArr = [] for(let i=0; i < arrLen; i++){ resArr.push(i) } resArr.sort((a,b) => { let ranBool = Math.floor(Math.random() * 2) //returns 0 or -1, which either leaves the integers in place or sorts the second one before the first return ranBool - 1 }) console.log(resArr)
function randomNumbers(howMany) { arrayOfNumbers = []; for (let i = 0; i < howMany; i++) { arrayOfNumbers.push(i); }; const arr = [...arrayOfNumbers]; let length = arr.length const randomArr = []; arr.forEach((num, i) => { const random = Math.floor(Math.random() * length); randomArr.push(arrayOfNumbers[random]); arrayOfNumbers.splice(arrayOfNumbers.indexOf(arrayOfNumbers[random]), 1); length-- }); return randomArr; }; console.log(randomNumbers(101));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.