簡體   English   中英

數組函數 'push' 和 'splice' Javascript

[英]Array functions 'push' and 'splice' Javascript

黑桃1,方塊1,梅花1,紅桃1,黑桃2,方塊2,梅花2,紅桃2,黑桃3,方塊3,梅花3,紅桃3,紅桃4黑桃,方塊4,梅花4,紅桃4,黑桃5,方塊5,梅花5,紅桃5,黑桃6,方塊6,梅花6,紅桃6,黑桃7,方塊7,梅花7,紅桃7,黑桃8,方塊8,梅花8,紅桃8,黑桃9,方塊9,梅花9,紅桃9,黑桃10,10鑽石,梅花 10,紅心 10

,,,

[這是程序返回的內容]

我正在嘗試在 JavaScript 中制作一個允許某人玩撲克的程序。 我在可汗學院使用 ProcessingJS 終端。 以下是我到目前為止的完整程序。 它應該做的是創建一個名為 deck 的數組,其中包括一副牌中所有牌的名稱(不包括面牌)。 該程序的那部分有效。 下一部分嘗試創建一個名為 current 的新數組,它是 deck 的精確副本。 然后它嘗試打印出當前的,並且它成功地完成了。

最后一個 for 循環是導致問題的原因。 它嘗試從當前牌中隨機抽取一張牌,並將其復制到另一個名為 player 的數組中,該數組應該是玩家的手牌。 然后它會嘗試從陣列電流中移除該卡。

然而,當它試圖打印出數組播放器時,它打印的只是三個逗號。 我不知道問題是什么,並且我查看了許多談論推送和拼接的網站。 我真的不知道出了什么問題。

同樣,我希望程序顯示玩家的手牌。 謝謝您的幫助。

var deck = [];
var current = [];
var enemy = [];
var player = [];
var suits = ['spades', 'diamonds', 'clubs', 'hearts'];

for (var i = 1; i < 11; i++) {
    for (var x = 0; x < 4; x++) {
        if (i <= 10) {
            deck.push(i + ' of ' + suits[x]);
        }
    }
}

for (var c = 0; c < 40; c++) {
    current[c] = deck[c];
}

println(current);
var y;

for (var a = 0; a < 4; a++) {
    y = random(0, (current.length - 1));
    player.push(current[y]);
    current.splice(y);
}

println(player);
    

為什么不直接簡化而不使用拼接呢?

據我了解,您正在使用random抽牌。 因此,只需使用player.push(current[y])將該牌推到玩家手上。

另外,當您調用current.splice(y)時,我認為您不會只刪除已繪制的卡片。 這會刪除索引 y 之后的牌組中的每張牌。 將其更改為current.splice(y, 1)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM