js从数组中随机多次获取三个值,三个值不相同,上下相邻获取值也不相同

这篇博客介绍了如何在JavaScript中从数组中随机抽取三个不重复的值,同时确保这些值与相邻抽取的值不相同。通过排序和遍历数组,结合删除已选元素的方法,实现了这一功能。示例代码展示了如何实现这个过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

js从数组中随机多次获取三个值,三个值不相同,上下相邻获取值也不相同
一、简单的数组排列
let numArr = [1, 2, 3, 4]
numArr.sort(function() {
    return 0.5 - Math.random();
})
二、从数组中随机多次获取三个值,上下相邻获取值不相同
let oldCakeList = [];
let arr = [];
for (var i=0; i< taskList.length; i ++) {  // 循环获取随机值数组arr
    this.handleGetRandom (oldList, (newList) => {
                 console.log('获取到的随机数======', newList);
                 oldList= newList;
                 arr.push(newList);
    });
}
handleGetRandom = (oldList, callback) => {
       let {dataList} = Data;// 获取原基数
       let upList = oldList;
       let Finish = JSON.parse(JSON.stringify(dataList));
       if (upCakeList.length > 0) { // 删除上一次随机的值,获取新的随机基数
           Finish.splice(Finish.indexOf(upList [0]), 1);
           Finish.splice(Finish.indexOf(upList [1]), 1);
           Finish.splice(Finish.indexOf(upList [2]), 1);
       }
       var newList= [];
       for (var i = 0; i < 3; i ++) { // 获取不重复随机值
           let num = Math.floor(Math.random()*Finish.length);
           let random= Finish[num];
           Finish.splice(num, 1);
           newList.push(random);
       }
        return callback(newList);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值