怎样得到1到9随机不重复的9次结果?

中国推广网 2018-01-30 09:05:58
公司年会抽奖,javascript怎样随机从一到九产生不同的九次结果,每次不一样?


var jiangpin = new Array()
jiangpin[9] = "豆浆机"
jiangpin[1] = "美的微波炉"
jiangpin[2] = "加湿器"
jiangpin[3] = "拍立得"
jiangpin[4] = "迪奥香水"
jiangpin[5] = "施华洛世奇首饰"
jiangpin[6] = "kindle阅读器"
jiangpin[7] = "1000元大奖"
jiangpin[8] = "888元大奖"
...全文
1253 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
s8656505 2018-02-04
  • 打赏
  • 举报
回复
// var data = ["豆浆机", "美的微波炉", "加湿器", "拍立得", "迪奥香水", "施华洛世奇首饰", "kindle阅读器", "1000元大奖", "888元大奖"]; var data = ["豆浆机", "美的微波炉", "加湿器", "拍立得", "迪奥香水", "施华洛世奇首饰", "kindle阅读器", "1000元大奖", "888元大奖","big","large"]; var length = data.length; function getReward(data){ var length = data.length; var index = Math.floor(Math.random()*length); console.log(data[index]); data.splice(index,1); return data; } for(var i=0;i<length;i++){ getReward(data); // console.log(data); }
当作看不见 2018-01-30
  • 打赏
  • 举报
回复

var jiangpin = new Array()
jiangpin[0] = "豆浆机"
jiangpin[1] = "美的微波炉"
jiangpin[2] = "加湿器"
jiangpin[3] = "拍立得"
jiangpin[4] = "迪奥香水"
jiangpin[5] = "施华洛世奇首饰"
jiangpin[6] = "kindle阅读器"
jiangpin[7] = "1000元大奖"
jiangpin[8] = "888元大奖"
var i = 9;
while(i--){
var index = Math.floor( Math.random()*i);
console.log(jiangpin[index]);
jiangpin.splice(index,1);
}
yaotomo 2018-01-30
  • 打赏
  • 举报
回复

	<script type="text/javascript">
		var data = ["豆浆机","美的微波炉","加湿器","拍立得","迪奥香水","施华洛世奇首饰","kindle阅读器","1000元大奖","888元大奖"];
		var index = getRandomArray();

		for(var i=0;i<index.length;i++){
			console.log(data[index[i]-1]);
		}

		function getRandomArray()
		{
			var array = [];
			while (array.length < 9)
			{
				var random = Math.floor(Math.random() * 9) + 1;
				if (array.indexOf(random) < 0)
				{
					array.push(random);
				}
			}
			return array;
		}

	</script>
无聊的上午 2018-01-30
  • 打赏
  • 举报
回复
将结果存入数组,每次随机结果都与数组中已有结果比较,如果相等就继续随机,如果不相等则将结果存入数组,判断数组长度,如果长度大于等于9,则跳出循环,循环方式采用while(true){}
阿尼亚学算法 2018-01-30
  • 打赏
  • 举报
回复
利用math.random 对象实现
wdbjsh 2018-01-30
  • 打赏
  • 举报
回复
这个题目可以简单的用一个 随机数来处理。

var jiangpin = new Array()
jiangpin[9] = "豆浆机"
jiangpin[1] = "美的微波炉"
jiangpin[2] = "加湿器"
jiangpin[3] = "拍立得"
jiangpin[4] = "迪奥香水"
jiangpin[5] = "施华洛世奇首饰"
jiangpin[6] = "kindle阅读器"
jiangpin[7] = "1000元大奖"
jiangpin[8] = "888元大奖"

for(var i=0;i<9;i++){
var n=parseInt(Math.random() *10)
var j=jiangpin .length-1 % n ;console.log(i,j);
console.log(jiangpin.splice(j,1)); //splice 低版本的ie不支持,需要hack
}



roffer 2018-01-30
  • 打赏
  • 举报
回复

var arr = ['豆浆机','美的微波炉','加湿器','拍立得','迪奥香水','施华洛世奇首饰','kindle阅读器','1000元大奖','888元大奖']

        /**
         * 获取不重复的随机数
         * @param count:生成随机数个数
         * @param range:数值范围
         */
        function getRandomList(count,range){
            count = count || 1,
            range = range || [1,count + 1];

            min = range[0],
            max = range[1];

            unique = arguments[2] || {},
            result = arguments[3] || [];

            var num = Math.floor(Math.random() * (max - min) + min);
            if(result.length < count){
                if(!unique[num]){
                    result.push(num);
                    unique[num] = 1;
                }
                getRandomList(count,range,unique,result);
            }

            return result;
        }
        
        var indexs = getRandomList(9,[0,9]);
        for(var i in indexs)console.log(arr[indexs[i]])
think_wei 2018-01-30
  • 打赏
  • 举报
回复
应该是每次生成一个随机数的问题吧

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧