I havent tested, but this should work,
FB.getLoginStatus(function(response) {
FB.api({ method: 'friends.get' }, function(result) {
Log.info('friends.get response', result);
var user_ids="" ;
var totalFriends = result.length;
var numFriends = result ? Math.min(5, result.length) : 0;
if (numFriends > 0) {
for (var i=0; i<numFriends; i++) {
var randNo = Math.floor(Math.random() * totalFriends)
user_ids+= (',' + result[randNo]);
}
}
profilePicsDiv.innerHTML = user_ids;
alert(user_ids);
});
});
Here, in loop I generate a random no from 0 to result.length
(i.e. total friends in current response) And then I use that random no to fetch random id from the given list.
Edit: (after OP asked about non-repeating randoms),
Based on your requirement, this should work...
FB.getLoginStatus(function(response) {
FB.api({ method: 'friends.get' }, function(result) {
Log.info('friends.get response', result);
var user_ids="" ;
var totalFriends = result.length;
var randNo = Math.floor(Math.random() * totalFriends);
var numFriends = result ? Math.min(5,totalFriends) : 0;
if (numFriends > 0) {
for (var i=0; i<numFriends; i++) {
user_ids+= (',' + result[randNo]);
randNo ++;
if(randNo >= totalFriends){
randNo = 0;
}
}
}
profilePicsDiv.innerHTML = user_ids;
alert(user_ids);
});
});
Here, instead of generating random no each time, I generate a random no once and then increment it. If random no exceeds the total no of friends, then I start from 0.
This will always give random friends each time :)
Code is not tested, I apologize if has errors ( But code surely gives you a direction to think)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…