逐个显示屏幕上的所有数组元素

时间:2017-09-06 12:03:54

标签: javascript arrays

我是社区的新手并且最近发布了这个问题,但我在描述中并不详细,无法得到我想要的回复。抱歉。但是,感谢大家,他们提供了他们的帮助。到目前为止我所拥有的:我可以创建一个数组,在该数组中随机绘制一个元素,并通过单击按钮将其显示在屏幕上。然后从阵列Perfect中删除该元素!但是我的代码只向屏幕显示当前正在切片的元素。我想要做的是将每个单独的元素显示到屏幕上,因为它是随机拼接的,因此我最终得到屏幕上的所有元素和一个空数组。我尝试使用循环非常失败。很抱歉我的帖子不够清晰,并提前感谢您的额外帮助。

function RandomDraw(){
    var ri = Math.floor(Math.random() * myArray.length);
    var rs = myArray.splice(ri, 1);
    document.getElementById("showSplice").textContent = rs;
    document.getElementById("showArrayList").innerHTML = myArray;
}

4 个答案:

答案 0 :(得分:2)

使用innerHTML + =而不是使用textContent标记现有值。请参阅this code pen

function RandomDraw(){
  var ri = Math.floor(Math.random() * myArray.length);
  var rs = myArray.splice(ri, 1);
  document.getElementById("showSplice").innerHTML += rs;
  document.getElementById("showArrayList").innerHTML = myArray;
}

答案 1 :(得分:2)

目前尚不清楚是否仍然需要点按一下按钮,因为你说你正在尝试使用循环,所以我实现了一个sql_variant来模仿我认为你想要实现的目标:

setTimeout

<强> DEMO

答案 2 :(得分:1)

您只需附加文字内容,而不是覆盖它。

function RandomDraw(){
    var ri = Math.floor(Math.random() * myArray.length);
    var rs = myArray.splice(ri, 1);
    document.getElementById("showSplice").textContent += ' ' + rs;
    document.getElementById("showArrayList").innerHTML = myArray;
}

答案 3 :(得分:1)

const myArray = [1, 2, 3, 4, 5];

document.getElementById("showArrayList").innerHTML = myArray.join(', ');

function RandomDraw(){
    const ri = Math.floor(Math.random() * myArray.length);
    const rs = myArray.splice(ri, 1);
    const showSpliceElement = document.getElementById("showSplice");
    const splicedElements = showSpliceElement.innerHTML;
    showSpliceElement.innerHTML +=
      splicedElements && rs.length
        ? `, ${rs}`
        : rs;
    document.getElementById("showArrayList").innerHTML = myArray.join(', ');
}
Splice: <span id="showSplice"></span><br>
Array: <span id="showArrayList"></span><br>
<button onclick="RandomDraw()">Go</button>