Javascript 按条件创建数组
我想通过以下方式向数组中插入数字:Javascript 按条件创建数组,javascript,random,Javascript,Random,我想通过以下方式向数组中插入数字: 数字应介于1-5之间 第一个数字不能是1,第二个数字不能是2,以此类推 无法将所选编号插入到其他索引 例如: [1,2,3,4,5] 我随机化第一个数字:1[条件2不存在:1不能在第一个索引中,所以我再次随机化得到4) 因此,新阵列: 0 - 4 1 - 2 - 3 - 4 - 我将一个数字随机化到第二个单元格,得到了4,但是4被插入到了第一个元素[条件3],所以我再次随机化,得到了2,但是2不能是第二个元素[条件2],所以我再次随机化,得到了5 0
0 - 4
1 -
2 -
3 -
4 -
我将一个数字随机化到第二个单元格,得到了4,但是4被插入到了第一个元素[条件3],所以我再次随机化,得到了2,但是2不能是第二个元素[条件2],所以我再次随机化,得到了5
0 - 4
1 - 5
2 -
3 -
4 -
等
我试图通过数字(1-5)初始化vec:
var数组=新数组();
数组[0]=1;
数组[1]=2;
数组[2]=3;
数组[3]=4;
数组[4]=5;
var newarr=新数组();
函数getRandomInt(最小值、最大值){
返回Math.floor(Math.random()*(max-min+1))+min;
}
$(文档).ready(函数(){
对于(变量i=0;i<5;i++){
var rand;
//检查条件2
而((rand=getRandomInt(1,5))==(i+1));
newarr[i]=兰特;
//阵列拼接(i,1);
}
//打印新数组
对于(变量i=0;i<5;i++){
警报((i+1)+'->'+newarr[i]);
}
});
但我需要在代码中添加条件3
感谢您的帮助!试试以下方法:
$(document).ready(function() {
for (var i = 0; i < 5; i++) {
var rand;
// check condition 2
while((rand = getRandomInt(1, 5)) == (i+1) || $.inArray(rand, newarr)) // Also check, if generated number is already in the array
newarr[i] = rand;
//array.splice(i, 1);
}
// print the new array
for (var i = 0; i < 5; i++) {
alert((i+1) + '->' + newarr[i]);
}
});
由于唯一可用的数字是5,但无法将其插入该位置,因此最终将出现一个无止境的while循环。var values=[1,2,3,4,5];
var values = [1,2,3,4,5];
var output = [];
for(var i=0;i<5;i++)
{
do{
var index = Math.floor(Math.random() * values.length);
}while(values[index] == i +1);
output[i] = values[index];
values.splice(index, 1);
}
console.log(output);
var输出=[];
对于(var i=0;i
[2, 1, 4, 3]
var values = [1,2,3,4,5];
var output = [];
for(var i=0;i<5;i++)
{
do{
var index = Math.floor(Math.random() * values.length);
}while(values[index] == i +1);
output[i] = values[index];
values.splice(index, 1);
}
console.log(output);