day122-随机生成数组

前言

题目:随机生成一个长度为 10 的整数类型的数组,例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],将其排列成一个新数组,要求新数组形式如下,例如 [[2, 3, 4, 5], [10, 11], [20]]。

代码

/**
* ---
* 随机生成一个长度为 10 的整数类型的数组,
* 例如 [2, 10, 3, 4, 5, 11, 10, 11, 20],
* 将其排列成一个新数组,要求新数组形式如下,
* 例如 [[2, 3, 4, 5], [10, 11], [20]]
*/
// 1. 生成两位整数,各个数生成的概率接近相等。(有问题,81-100之间的数有问题?)
function getRandomIntDouble () {
let randomIntSingle = (Math.random() * 10).toFixed(0)
return Math.pow(randomIntSingle, 2)
}
// 2. 生成一个长度为10的随机数数组
// let randomIntArr = Array.from({length: 10}, _ => getRandomIntDouble())
let randomIntArr = [...Array(10)].map(_ => getRandomIntDouble())
// 3. 去重
let uniqueArr = Array.from(new Set(randomIntArr))
// 4. 排序
let sortedUniqueArr = uniqueArr.sort((a, b) => a - b)
// 5. 新数组,0~10,10~20...80~99各占一个数组
// ----
let obj = {};
sortedUniqueArr.map((i) => {
const intNum = Math.floor(i/10);
if (!obj[intNum]) obj[intNum] = [];
obj[intNum].push(i);
})
// 输出结果
const resArr = [];
for(let i in obj) {
resArr.push(obj[i]);
}
console.log(resArr)

Create a array with random values

文章作者: lmislm
文章链接: http://lmislm.com/2019/05/14/2019-05-14/
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LMISLMのBlog