2013-09-26 42 views
0

我創建了一個匹配遊戲,我試圖從數組中添加一個類來匹配。 我下面的代碼創建了我需要的類,然後隨機化它們。從使用jQuery重複的數組中添加一個隨機類

我的問題是randomizeDeck函數。我試圖將每個類添加到指定的元素兩次。當我console.log代碼的類被添加到前六個元素,但不是最後六個,我需要它這樣做,我有類匹配在我創建的匹配遊戲。

var cardDeck = new Array(); 

function createDeck() { 
    for (i = 1; i <= 6; i++) { 
     cardDeck.push("card-" + i); 
    } 
} 
createDeck(); 

var randDeck = cardDeck.sort(randOrd); 

function randomizeDeck() { 
    card.each(function(i){ 
     $(this).addClass(randDeck[i]); 
    }); 
} 
randomizeDeck(); 
+0

什麼是「card.each」中的卡?這個變量有什麼? –

+0

變量卡是與類卡的div。該div被複制了12次。 –

+0

安迪的解決方案可能是您最好的選擇。 – BumbleB2na

回答

0

我建議一個單獨的變量來跟蹤索引,而不是指數each。一旦你經歷過一次包裝,再次洗牌可能是一個好主意,所以在第二階段順序是不同的。因人而異。

function sortCards(randOrd) { 
    randDeck = cardDeck.sort(randOrd); 
} 

function randomizeDeck() { 
    var count = 0; 
    cards.each(function(i) { 
    if (i === 6) { count = 0; sortCards(randOrd); } 
    $(this).addClass(randDeck[count]); 
    count++; 
    }); 
} 
0

你randomizeDeck()函數可以改寫爲使用的類名相同的數組兩次:

function randomizeDeck() { 
    card.each(function(i){ 
     if(i < 6) 
      $(this).addClass(randDeck[i]) 
     else 
      $(this).addClass(randDeck[i-6]); 
    }); 
} 

注:我會重寫變量card作爲$cards,讓你知道這是一個jQuery對象在這種情況下,它們的集合。否則,很難將它與其他任何javascript var分開。

+0

這是正確的,有十幾張卡片,我試圖添加一個複製類匹配的目的。例如卡1與卡-1匹配等 –

+0

然後,你要超出數組的界限 – BumbleB2na

+0

任何關於如何將相同數組應用到整個元素塊的建議? –

0

嘗試是這樣的 - 這是測試的,現在更新 看到這個FIDDLE http://jsfiddle.net/8XBM2/1/

var cardDeck = new Array(); 

function createDeck() { 
    for (i = 1; i <= 6; i++) { 
     cardDeck.push("card-" + i); 
    } 
} 
createDeck(); 
var randDeck = cardDeck.sort(); 
alert(randDeck); 

function randomizeDeck() { 
    var x = 0; 
    $('div').each(function(i){ 
    if (i > 5) { 

       $(this).addClass(randDeck[x]); 
     x++; 
     } else { 
     $(this).addClass(randDeck[i]); 
    } 
    }); 
} 
randomizeDeck(); 
+0

我假設你想重新啓動迭代後6 –

+0

是的,我想數組應用兩次,以便我有一個類,我可以匹配兩個卡反對。 –

+0

看到我更新的小提琴 –

1

我覺得你createDeck功能需要創建12個班,而不是6,只需按下每一個兩次:

function createDeck() { 
    for (i = 1; i <= 6; i++) { 
     cardDeck.push("card-" + i); 
     cardDeck.push("card-" + i); 
    } 
} 

然後,你將有12個類的數組(6個唯一類中的2個),它們將被隨機化並分配給12個卡。

+0

不要忘記發生在她的初始數組上的隨機排序。 – BumbleB2na

+0

@ BumbleB2na - 這種類型可以正常工作。你看到一個問題嗎? – andi

+0

居然沒有..現在你提到它會混合起來比我的解決方案更好 – BumbleB2na

相關問題