您好StackOverflow社区!
目前,我完全陷入了代码困境,尝试了各种不同的方法来从数组中删除值(在选择时),我知道我必须为此使用splice,但是由于某种原因,它没有按照我想要的去做
由于该网页很难解释为我的英语好语,因此我对其做了一些屏幕截图,希望您一看清我想做的事情就明白了!
这就是用户访问网页时看到的内容,这基本上是一种娱乐游戏.用户必须将3张卡片拖到卡片下方的灰色框中.
将3张卡片拖到框中后,用户可以单击图像(卡片)以将其翻转(翻转)
这很好用,唯一的问题是我不希望用户选择同一张卡片,甚至两次,甚至两次.由于我是用数组进行的,所以我认为我应该使用Splice函数,但到目前为止,没有结果!
JavaScript代码,这里是JSfiddle http://jsfiddle.net/dkk2nqyg/
$(function () {
var cars = ["2", "3", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26", "4"];
var rand = cars[Math.floor(Math.random()*cars.length)];
$(".cards img").each(function(index) {
$(this).wrap('<div class="front"></div>')
.parent().wrap('<div class="flipper"></div>')
.parent().wrap('<div class="flip-container"></div>')
.append('<div class="back"><img src="./kaart/'+cars[Math.floor(Math.random()*cars.length)]+'.png"</img> </div>');
});
我尝试了许多解决方案,但问题是我需要在这里拼接至少,我认为:
.append('<div class="back"><img src="./kaart/'+cars[Math.floor(Math.random()*cars.length)]+'.png"</img> </div>');
我很高兴能解决此问题,希望StackOverflow可以为我提供我想要的帮助:)
谢谢!
解决方法:
您可以使用splice()从数组中删除一项,因为splice返回一个数组,然后您可以访问索引为0的元素以获取提取的src值
'<div class="back"><img src="./kaart/' + cars.splice(Math.floor(Math.random() * cars.length),1)[0] + '.png"</img> </div>'