Javascript 防止两次选择数组项
如何防止从for循环中的数组中选择两次数字?在这种情况下,我希望确保pictureNo每次都是唯一的Javascript 防止两次选择数组项,javascript,Javascript,如何防止从for循环中的数组中选择两次数字?在这种情况下,我希望确保pictureNo每次都是唯一的 $(document).ready(function () { // Generate timeline items var timelineItemCount = Math.floor(Math.random() * 9) + 1; for(i=0;i<timelineItemCount;i++) {
$(document).ready(function () {
// Generate timeline items
var timelineItemCount = Math.floor(Math.random() * 9) + 1;
for(i=0;i<timelineItemCount;i++)
{
generateTimeline();
}
});
function generateTimeline() {
// Select gender
var genderArray = ['male','female'];
var gender = genderArray[Math.floor(Math.random()*genderArray.length)];
// Select profile picture - how do I prevent the same number from being selected once here
var pictureNo = Math.floor(Math.random() * 19) + 1;
// Create timeline entry
$('#home-page').append($('<div class="timeline-item"><img src="assets/img/' + gender + '_profile' + pictureNo + '.jpg" alt="" class="img-rounded profile"></div>'));
}
$(文档).ready(函数(){
//生成时间线项目
var timelineItemCount=Math.floor(Math.random()*9)+1;
对于(i=0;i尝试并存储随机选择的数字,因此每次随机选择一个新数字时,您都有一个条件将其与以前选择的数字进行比较。如果以前选择了该数字,则应选择一个新的随机数字。尝试并存储随机选择的数字,以便每次都有一个新数字r是随机选择的。您有一个条件将其与以前选择的数字进行比较。如果该数字是以前选择的,则应选择一个新的随机数字。尝试存储随机选择的数字,以便每次随机选择一个新数字时,您都有一个条件将其与h先前选择的数字。如果先前选择了该数字,则应选择一个新的随机数字。尝试并存储随机选择的数字,以便每次随机选择一个新数字时,您都有一个条件将其与先前选择的数字进行比较。如果先前选择了该数字,则应选择一个新的随机数。在for循环外创建一个数组,并存储生成的随机数。
在for循环的每次迭代中,检查新的随机数是否属于数组。
for循环完成后,将数组重置为空数组。在for循环外创建一个数组,并存储生成的随机数。
在for循环的每次迭代中,检查新的随机数是否属于数组。
for循环完成后,将数组重置为空数组。在for循环外创建一个数组,并存储生成的随机数。
在for循环的每次迭代中,检查新的随机数是否属于数组。
for循环完成后,将数组重置为空数组。在for循环外创建一个数组,并存储生成的随机数。
在for循环的每次迭代中,检查新的随机数是否属于数组。
for循环完成后,将阵列重置为空阵列。尝试以下操作:-
$(document).ready(function () {
// Generate timeline items
var timelineItemCount = Math.floor(Math.random() * 9) + 1.
selectedPicObj={};
for(i=0;i<timelineItemCount;i++)
{
generateTimeline(selectedPicObj);
}
});
function generateTimeline(selectedPicObj) {
// Select gender
var genderArray = ['male','female'], i=0;
var gender = genderArray[Math.floor(Math.random()*genderArray.length)];
// Select profile picture - how do I prevent the same number from being selected once here
var pictureNo = Math.floor(Math.random() * 19) + 1;
for(;i<19;i++){
if(!selectedPicObj[pictureNo]){
selectedPicObj[pictureNo] = true;
break;
}else{
pictureNo++;
if(pictureNo === 19){
pictureNo = 0;
}
}
}
// Create timeline entry
$('#home-page').append($('<div class="timeline-item"><img src="assets/img/' + gender + '_profile' + pictureNo + '.jpg" alt="" class="img-rounded profile"></div>'));
}
$(文档).ready(函数(){
//生成时间线项目
var timelineItemCount=Math.floor(Math.random()*9)+1。
selectedPicObj={};
对于(i=0;i试试这个:-
$(document).ready(function () {
// Generate timeline items
var timelineItemCount = Math.floor(Math.random() * 9) + 1.
selectedPicObj={};
for(i=0;i<timelineItemCount;i++)
{
generateTimeline(selectedPicObj);
}
});
function generateTimeline(selectedPicObj) {
// Select gender
var genderArray = ['male','female'], i=0;
var gender = genderArray[Math.floor(Math.random()*genderArray.length)];
// Select profile picture - how do I prevent the same number from being selected once here
var pictureNo = Math.floor(Math.random() * 19) + 1;
for(;i<19;i++){
if(!selectedPicObj[pictureNo]){
selectedPicObj[pictureNo] = true;
break;
}else{
pictureNo++;
if(pictureNo === 19){
pictureNo = 0;
}
}
}
// Create timeline entry
$('#home-page').append($('<div class="timeline-item"><img src="assets/img/' + gender + '_profile' + pictureNo + '.jpg" alt="" class="img-rounded profile"></div>'));
}
$(文档).ready(函数(){
//生成时间线项目
var timelineItemCount=Math.floor(Math.random()*9)+1。
selectedPicObj={};
对于(i=0;i试试这个:-
$(document).ready(function () {
// Generate timeline items
var timelineItemCount = Math.floor(Math.random() * 9) + 1.
selectedPicObj={};
for(i=0;i<timelineItemCount;i++)
{
generateTimeline(selectedPicObj);
}
});
function generateTimeline(selectedPicObj) {
// Select gender
var genderArray = ['male','female'], i=0;
var gender = genderArray[Math.floor(Math.random()*genderArray.length)];
// Select profile picture - how do I prevent the same number from being selected once here
var pictureNo = Math.floor(Math.random() * 19) + 1;
for(;i<19;i++){
if(!selectedPicObj[pictureNo]){
selectedPicObj[pictureNo] = true;
break;
}else{
pictureNo++;
if(pictureNo === 19){
pictureNo = 0;
}
}
}
// Create timeline entry
$('#home-page').append($('<div class="timeline-item"><img src="assets/img/' + gender + '_profile' + pictureNo + '.jpg" alt="" class="img-rounded profile"></div>'));
}
$(文档).ready(函数(){
//生成时间线项目
var timelineItemCount=Math.floor(Math.random()*9)+1。
selectedPicObj={};
对于(i=0;i试试这个:-
$(document).ready(function () {
// Generate timeline items
var timelineItemCount = Math.floor(Math.random() * 9) + 1.
selectedPicObj={};
for(i=0;i<timelineItemCount;i++)
{
generateTimeline(selectedPicObj);
}
});
function generateTimeline(selectedPicObj) {
// Select gender
var genderArray = ['male','female'], i=0;
var gender = genderArray[Math.floor(Math.random()*genderArray.length)];
// Select profile picture - how do I prevent the same number from being selected once here
var pictureNo = Math.floor(Math.random() * 19) + 1;
for(;i<19;i++){
if(!selectedPicObj[pictureNo]){
selectedPicObj[pictureNo] = true;
break;
}else{
pictureNo++;
if(pictureNo === 19){
pictureNo = 0;
}
}
}
// Create timeline entry
$('#home-page').append($('<div class="timeline-item"><img src="assets/img/' + gender + '_profile' + pictureNo + '.jpg" alt="" class="img-rounded profile"></div>'));
}
$(文档).ready(函数(){
//生成时间线项目
var timelineItemCount=Math.floor(Math.random()*9)+1。
selectedPicObj={};
对于(i=0;i让我们定义两个男性和女性索引数组,genders数组,将它们洗牌并弹出一些项目。使用下划线.JS很容易,例如:
var malesCount = 20;
var femalesCount = 20;
var profiles = {
'male' : _.shuffle(_.range(1, malesCount + 1)),
'female' : _.shuffle(_.range(1, femalesCount + 1)),
};
var genders = [];
for (var index = 0; index < malesCount; index++) {
genders.push('male');
}
for (var index = 0; index < femalesCount; index++) {
genders.push('female');
}
genders = _.shuffle(genders);
var gender;
var pictureNo;
var src;
while (gender = genders.pop()) {
pictureNo = profiles[gender].pop();
src = 'assets/img/' + gender + '_profile' + pictureNo + '.jpg';
console.log(src);
}
var malesunt=20;
var femalesCount=20;
变量配置文件={
“男性”:洗牌(0.range(1,malesunt+1)),
'female':u.shuffle(u.range(1,femalesCount+1)),
};
变量性别=[];
对于(var指数=0;指数
我已经对50K的男性和50K的女性测试了这个解决方案,它只在115毫秒内执行。让我们定义两个男性和女性索引数组,genders数组,将它们洗牌并弹出一些项目。使用下划线.JS很容易,例如:
var malesCount = 20;
var femalesCount = 20;
var profiles = {
'male' : _.shuffle(_.range(1, malesCount + 1)),
'female' : _.shuffle(_.range(1, femalesCount + 1)),
};
var genders = [];
for (var index = 0; index < malesCount; index++) {
genders.push('male');
}
for (var index = 0; index < femalesCount; index++) {
genders.push('female');
}
genders = _.shuffle(genders);
var gender;
var pictureNo;
var src;
while (gender = genders.pop()) {
pictureNo = profiles[gender].pop();
src = 'assets/img/' + gender + '_profile' + pictureNo + '.jpg';
console.log(src);
}
var malesunt=20;
var femalesCount=20;
变量配置文件={
“男性”:洗牌(0.range(1,malesunt+1)),
'female':u.shuffle(u.range(1,femalesCount+1)),
};
变量性别=[];
对于(var指数=0;指数
我已经对50K的男性和50K的女性测试了这个解决方案,它只在115毫秒内执行。让我们定义两个男性和女性索引数组,genders数组,将它们洗牌并弹出一些项目。使用下划线.JS很容易,例如:
var malesCount = 20;
var femalesCount = 20;
var profiles = {
'male' : _.shuffle(_.range(1, malesCount + 1)),
'female' : _.shuffle(_.range(1, femalesCount + 1)),
};
var genders = [];
for (var index = 0; index < malesCount; index++) {
genders.push('male');
}
for (var index = 0; index < femalesCount; index++) {
genders.push('female');
}
genders = _.shuffle(genders);
var gender;
var pictureNo;
var src;
while (gender = genders.pop()) {
pictureNo = profiles[gender].pop();
src = 'assets/img/' + gender + '_profile' + pictureNo + '.jpg';
console.log(src);
}
var malesunt=20;
var femalesCount=20;
变量配置文件={
“男性”:洗牌(0.range(1,malesunt+1)),
'female':u.shuffle(u.range(1,femalesCount+1)),
};
变量性别=[];
对于(var指数=0;指数
我已经对50K的男性和50K的女性测试了这个解决方案,它只在115毫秒内执行。让我们定义两个男性和女性索引数组,genders数组,将它们洗牌并弹出一些项目。使用下划线.JS很容易,例如:
var malesCount = 20;
var femalesCount = 20;
var profiles = {
'male' : _.shuffle(_.range(1, malesCount + 1)),
'female' : _.shuffle(_.range(1, femalesCount + 1)),
};
var genders = [];
for (var index = 0; index < malesCount; index++) {
genders.push('male');
}
for (var index = 0; index < femalesCount; index++) {
genders.push('female');
}
genders = _.shuffle(genders);
var gender;
var pictureNo;
var src;
while (gender = genders.pop()) {
pictureNo = profiles[gender].pop();
src = 'assets/img/' + gender + '_profile' + pictureNo + '.jpg';
console.log(src);
}
var malesunt=20;
var femalesCount=20;
变量配置文件={
“男”:洗牌