【发布时间】:2020-01-23 21:52:46
【问题描述】:
我正在构建一个记忆卡游戏作为我的第一个 javascript 项目。我所做的是在 HTML 中创建一个包含 12 张卡片的部分,如下所示:
<section id="memorygame">
<div class="card">
<img class="front">
<img class="back" style="background-image: url(assets/img/banana.png);">
</div>
然后我通过 cloneNode() 方法复制了这个,所以网格总共会显示 24 张卡片。 现在我想使用以下代码来随机化卡片:
function shuffle(array) {
var currentIndex = array.length, temporaryValue, randomIndex;
while (currentIndex !== 0) {
randomIndex = Math.floor(Math.random() * currentIndex);
currentIndex -= 1;
temporaryValue = array[currentIndex];
array[currentIndex] = array[randomIndex];
array[randomIndex] = temporaryValue;
}
return array;
}
我假设我需要一个数组才能使其工作,但是如何将卡片转换为数组?我完全迷路了。如果有人可以解释如何以及为什么,我将非常感激。
【问题讨论】:
-
请注意,您的随机化功能可以分配超过 2 张相同类型的卡片,而少于 2 张其他卡片。您应该将所有卡片随机排列并按顺序分配。要将所有卡片放入类似数组的
HTMLCollection对象中,您可以迭代:var x = document.getElementsByClassName("card");更多信息:w3schools.com/jsref/met_document_getelementsbyclassname.asp -
@Jeff 生成
HTMLCollection对象,而不是数组。 -
好点,我会修改为正确的。
标签: javascript arrays shuffle