数组随机取一个拿出来,把数组里的去除,再随机取(可以直接取下标打乱,就是一个新数组)

      Title
	<script>
		let arrInitial = [{
				name: "王一",
				bh: 1
			},
			{
				name: "王二",
				bh: 2
			},
			{
				name: "王三",
				bh: 3
			},
			{
				name: "王四",
				bh: 4
			},
			{
				name: "王五",
				bh: 5
			},
			{
				name: "王六",
				bh: 6
			},
			{
				name: "王七",
				bh: 7
			},
			{
				name: "王八",
				bh: 8
			},
			{
				name: "王九",
				bh: 9
			},
			{
				name: "王十",
				bh: 10
			}

		];
		function exportArr() {
			let arr = JSON.parse(JSON.stringify(arrInitial));

			let finnalArr = [];

			// console.log(arr, '初始');

			let randomNum = arrInitial.length - 2; //用来算随机数的

			// 随机一个在数组里减掉一个,然后再循环,最后一个的时候直接push进去
			function again() {
				if (randomNum == -2) {
					finnalArr.push(arr[0]);
					arr.splice(0, 1);
				} else {
					let everyNum = Math.round(Math.random() * randomNum + 1);
					randomNum--;
					finnalArr.push(arr[everyNum]);
					arr.splice(everyNum, 1);
				}
			}
			// 数组有几个循环几次
			for (let i = 0; i < arrInitial.length; i++) {
				again()
			}

			console.log(arr, finnalArr);
		}
		exportArr();
		
	</script>
</body>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值