gpt4 book ai didi

javascript - 为什么我在 javascript 上的数组上未定义

转载 作者:行者123 更新时间:2023-12-01 02:37:21 25 4
gpt4 key购买 nike

我正在开发一个简单的应用程序,其想法是随机选取而不重复数组的值。

我设法通过一个函数来做到这一点,但在我开始执行它的那一刻,我得到了两个未定义的结果,我不知道为什么

代码示例:

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];

cont = 0;
totalnum = num.length - 1;

function next() {
var indice = Math.floor(Math.random() * (cont < totalnum ? ++cont : 0));
var number = num[indice];
document.getElementById("hola2").innerHTML = num.splice(indice, 1);
}

最佳答案

由于splice()改变了数组的长度,每次只需使用num的长度来获取随机索引,并且不需要其他变量

var num = [1, 2, 3, 4, 5, 6, 7, 8, 9];

function next() {
if (!num.length) return;// do something when no more exist

var indice = Math.floor(Math.random() * num.length);
var number = num.splice(indice, 1);
document.getElementById("hola2").innerHTML = number;
}

document.getElementById("btn").addEventListener('click', next)
<div id="hola2"></div>
<button id="btn">Next</button>

关于javascript - 为什么我在 javascript 上的数组上未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47801410/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com