Javascript中如何得到一个元素为不重复随机数的数组

比如长度为18的数组,元素是1-18的int数字生成数组时18个数字在数组中随机排放每个数字都出现且仅出现一次头都要焦了想不出来求老师解答一楼的值会重复啊仅仅都是随机数值... 比如长度为18的数组,元素是1-18的int数字
生成数组时 18个数字在数组中随机排放
每个数字都出现 且仅出现一次
头都要焦了想不出来 求老师解答
一楼的值会重复啊
仅仅都是随机数值的话又不难的 -。-|
展开
 我来答
kekee000
推荐于2016-07-07 · TA获得超过154个赞
知道小有建树答主
回答量:158
采纳率:0%
帮助的人:124万
展开全部
随机替换位置就行了,先初始化数组,之后进行对数组中元素的位置进行随机交换就行了。
var array=[];
for(var i=1;i<=18;i++) array[i]=i;
for(var i=0;i<array.length;i++){
var r=parseInt(Math.random()*array.length);
var v=array[i];array[i]=array[r];array[r]=v;
}
原理类似。
forzhp
2010-01-12 · TA获得超过1412个赞
知道小有建树答主
回答量:297
采纳率:0%
帮助的人:425万
展开全部
var arr = [];
for(var i=1;i<19;i++){
arr.push(i);
}
function GenerateRandomNumber(range){
return parseInt(Math.random()*range);//随机生成一个0到range的数字
}
function RegroupArr(arr){
if (arr.length <= 1) return arr;
var backupArr = [].concat(arr);//备份原来的数组,后面的操作会对数组进行修改
var result = [];
var r = GenerateRandomNumber(backupArr.length - 1);//生成0到length-1之间的随机数
result = result.concat(backupArr.splice(r,1));//从原来的数组中删除随机数位置的数字并存到结果中
result = result.concat(RegroupArr(backupArr));//回调本函数,对删除随机数后剩下的数组进行排序
return result;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
laverju
2010-01-13 · TA获得超过417个赞
知道小有建树答主
回答量:367
采纳率:0%
帮助的人:250万
展开全部
<script type="text/javascript">
function randArr(arr)
{
var len = Number(arr.length);
var newArr = new Array();

for(var i=len; i > 0; i--)
{
var m = i - 1;
var n = parseInt(Math.random() * m);
newArr[m] = arr[n];
arr.splice(n, 1);
}

return newArr;
}
//test
var a = Array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18);
alert(randArr(a));
</script>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hydra73
2010-01-12 · TA获得超过718个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:634万
展开全部
var rand = 0;
var newPic = [];
var pic = [1,2,3] //length = 18
for ( var i=0; i<18; i++ ){
rand = Math.floor(Math.random()*19);
newPic.push(pic[rand-1].slice());
}
alert(newPic);
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
L多久以后H
2018-07-05
知道答主
回答量:1
采纳率:0%
帮助的人:855
展开全部
不知道
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式