gpt4 book ai didi

javascript - 如何生成没有重复javascript的随机数

转载 作者:行者123 更新时间:2023-11-30 08:59:10 26 4
gpt4 key购买 nike

我正在使用以下代码生成 0 到 Totalfriends 之间的随机数,我想获得随机数,但它们不应重复。知道怎么做吗?

这是我使用的代码

FB.getLoginStatus(function(response) {
var profilePicsDiv = document.getElementById('profile_pics');
FB.api({ method: 'friends.get' }, function(result) {

// var result =resultF.data;
// console.log(result);
var user_ids="" ;
var totalFriends = result.length;
// console.log(totalFriends);
var numFriends = result ? Math.min(25, result.length) : 0;
// console.log(numFriends);
if (numFriends > 0) {
for (var i=0; i<numFriends; i++) {
var randNo = Math.floor(Math.random() * (totalFriends + 1))
user_ids+= (',' + result[randNo]);
console.log(user_ids);

}
}
profilePicsDiv.innerHTML = user_ids;
});
});

最佳答案

这是一个函数,它会从 array 中获取 n 个随机元素,并根据 fisher-yates 洗牌返回它们。请注意,它将修改 array 参数。

function randomFrom(array, n) {
var at = 0;
var tmp, current, top = array.length;

if(top) while(--top && at++ < n) {
current = Math.floor(Math.random() * (top - 1));
tmp = array[current];
array[current] = array[top];
array[top] = tmp;
}

return array.slice(-n);
}

假设您的代码按照我的想法工作,您已经有了一个用户 ID 数组:

var random10 = randomFrom(friendIds, 10);

关于javascript - 如何生成没有重复javascript的随机数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10756119/

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