javascript - 在随机位置用 0 填充数组
问题描述
我有一个看起来像这样的数组
[ [1], [14, 17], [27], [30, 35], [42, 45], [56, 59], [69], [79], [81, 83, 87]]
我想遍历这个数组并用 0 填充数组内的数组,直到它们每个数组都有 3 个值。但我不想只填充开头或结尾,我希望随机放置 0。我正在尝试制作一张 1-90 的宾果卡,以便将数字随机放置在每一列中。
所以最终结果看起来像
[ [0, 1, 0], [14, 17, 0], [0, 0, 27], [0, 30, 35], [42, 0, 45], [56, 59, 0], [69, 0, 0], [0, 0, 79], [81, 83, 87]]
谢谢
解决方案
您可以使用map
方法和while
循环来执行此操作,只要当前元素长度 < 3,它将在映射迭代中当前元素的随机索引(最大索引为 2)处插入 0。
const data = [ [1], [14, 17], [27], [30, 35], [42, 45], [56, 59], [69], [79], [81, 83, 87]]
const result = data.map(a => {
let arr = [...a]
while (arr.length < 3) {
const index = parseInt(Math.random() * 3)
arr.splice(index, 0, 0)
}
return arr
})
console.log(result)
推荐阅读
- r - 通过函数将 URL 传递给 dplyr:mutate 时如何修复“json 文本中的无效字符”
- python - 我的 python 应用程序中的所有线程都显示为“python3”
- powerapps - 灵活高度画廊行下的空间
- firebase - console.debug 未显示在 firebase 函数日志中
- xamarin - 自定义条目 null xamarin
- java - 当 WeakReference 中的对象被垃圾回收时,是否可以运行代码?
- python - 如何在 HTTP 请求中测试用户名和密码?
- python - 为什么 odoo 11 向导没有响应?
- php - 正则表达式将html实体替换回字符
- angular - 错误类型错误:无法读取未定义的属性“用户”