gpt4 book ai didi

javascript - 访问不完整数组的随机索引?

转载 作者:行者123 更新时间:2023-11-29 22:32:56 24 4
gpt4 key购买 nike

我有一个最大长度为几十万行的数组。它看起来像这样:

arr[12]   = false
arr[334] = true
arr[753] = true
arr[1001] = false
arr[1222] = true

等等……

我想找到最快的方法来随机选择为真的行的索引...

我最初的尝试是这样做的:

for(k in arr) {
if(arr[k]) {
candidate.push(k);
}
}

return Math.floor(Math.random() * candidate.length);

但是速度很慢。

有更好的方法吗?

最佳答案

如果缺失元素的比例足够小,它将足够快地生成随机索引,直到你被命中。试一试。

var chose_true = function(array) {
while (true) {
var index = Math.floor(Math.random() * array.length)
if (array[index]) {
return array[index];
}
}
}

关于javascript - 访问不完整数组的随机索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290884/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com