作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我之前试图问一个更复杂的问题,但我无法很好地解释它,所以我再次尝试使用一个简化的用例。
我将有一个数组,如下所示
var allData = [[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5],[1,2,3,4,5]]
var allData = [[1,2,4],[1,2],[1,2],[2,4,5],[1,2,3,5]]
const allData = [[1,2,4],[1,2],[1,2],[2,4,5],[1,2,3,5]]
var selectedData = []
for (var i in allData){
console.log("length",allData[i].length)
var j = 0
while(j < allData[i].length){
console.log("chekcing",allData[i][j])
if (selectedData.includes(allData[i][j])){
console.log("removing item")
allData[i].splice(j,1)
}
else{j++}
}
var uniqueIds = Object.keys(allData[i])
console.log(uniqueIds)
var randId = Math.floor(Math.random() * uniqueIds.length)
console.log(randId)
selectedData.push(allData[i][randId])
console.log("selectedData",selectedData)
}
最佳答案
您可以从一个相当简单的回溯算法开始:
function pick(bins, n = 0, res = {}) {
if (n === bins.length) {
return res
}
for (let x of bins[n]) {
if (!res[x]) {
res[x] = n + 1
let found = pick(bins, n + 1, res)
if (found)
return found
res[x] = 0
}
}
}
//
let a = [[1, 2, 4], [1, 2], [1, 2], [2, 4, 5], [1, 2, 3, 4]]
console.log(pick(a))
item => bin index + 1
,如果需要,很容易转换回数组。
关于javascript - 从数组数组中挑选一个唯一的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66481054/
我即将将主干中的某些修订合并到发布分支中。我用 mergeinfo 检查了有多少修订符合合并条件,结果是 42。尽管检查每个修订日志并决定是否应该合并它绝对是可能的并且不太难。然后,我将使用 Tort
我有 5 个文件夹,每个文件夹包含大小为 10KB、500KB、1MB、5MB 和 30MB 的“n”个文件。现在我需要从这些文件夹中选择正好 15000 个文件并将它们放入一个新文件夹中,这样我就可
嗨,我已经成功解析了一个以公里为单位的距离的 XML 文件。但结果我得到了源距离列表,但列表中的最后一个元素包含列表中所有其他元素的总和。如何获取列表中的最后元素 一些源代码: for(int s=0
我正在尝试修剪它,它存储在一个名为 $line 的变量中。 [2012-06-18 10:37:09,026 (there is a lot of text after this, i just cu
我正在使用 Python Selenium 绑定(bind)并测试网络服务器。我试图断言文本“回归”和“回归测试”的存在。有谁知道如何做吗?这是我在检查我感兴趣的元素时看到的内容: Regressi
我是一名优秀的程序员,十分优秀!