JavaScript数组拼接

时间:2015-03-16 08:34:57

标签: javascript jquery html css arrays

Hello StackOverflow社区!

目前我完全坚持使用我的代码,尝试不同的方法从数组中删除一个值,我知道我必须使用splice,但由于某种原因,它不是我想要它做的做

由于网页很难解释,因为我的英语很好,我已经制作了一些屏幕截图,我希望你在看到我想做的事情时能得到这个想法!

这是用户访问网页时会看到的内容,它基本上是一个lenormand游戏。用户必须将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可以为我提供我想要的帮助:)

谢谢!

2 个答案:

答案 0 :(得分:0)

首先,将随机数放在一个单独的变量

var rnd = Math.floor(Math.random()*cars.length);
var rand = cars[rnd];

然后从数组中删除该特定项目

cars.splice(rnd, 1);

干杯 [R

答案 1 :(得分:0)

您可以使用splice()从数组中删除项目,因为splice返回一个数组,然后您可以访问索引0处的元素以获取获取的src值

'<div class="back"><img src="./kaart/' + cars.splice(Math.floor(Math.random() * cars.length),1)[0] + '.png"</img> </div>'