思路:使用 Math.floor(Math.random() * arrStr.length)随机抽取数组元素,抽取之后删除数组该项元素避免重复抽取
<div class="container">
<div>
<button>抽取</button>
</div>
<div>
<span>被抽到的人是:</span><span class="display"></span>
</div>
</div>
<script>
var btn = document.querySelector("button")
var display = document.querySelector(".display")
var random,arrEnd=[]
var arrStr = ['红薯炒地瓜',"a","b","c","d","e","f","g","AS","GH","RF","lk"]
function fn() {
//随机抽取一个数组元素
random = arrStr[Math.floor(Math.random() * arrStr.length)];
//将抽取到的数组元素push进新数组用于展示
arrEnd.push(random)
//找到抽取元素的数组下标
let index = arrStr.indexOf(random)
//根据数组下标使用splice删除arrStr数组之后的该元素 避免重复抽取到一个元素
arrStr.splice(index,1)
}
btn.onclick = function() {
//判断arrStr数组长度,若大于0则调用fn抽取元素
if(arrStr.length > 0){
fn()
}else {
alert("抽取完毕")
}
display.innerHTML = arrEnd
}
</script>
效果如下:
文章就到这里啦,本人功力尚浅,若有不妥之处请谅解指正,谢谢!