【问题标题】:In an array, a key has multiple values and I want to remove a specific value [duplicate]在一个数组中,一个键有多个值,我想删除一个特定的值[重复]
【发布时间】:2020-05-20 11:00:45
【问题描述】:
var cards = {
    heart:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    spade:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    diamond:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    king:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
};



function cardSelectionForPlayer(){
    let x = Math.floor((Math.random() * 3) + 0);
    let y = Math.floor((Math.random() * Object.values(cards)[x].length-1) + 0);


    if (y==9 || y==10 || y==11) {
        playerHands.push(10);
    } else if (y==12){
        if ( ((playerHands.reduce((a,b) => a+b, 0))+11) < 21){
            playerHands.push(11);
        } else {
            playerHands.push(1);
        }
    } else {
    playerHands.push(Object.values(cards)[x][y]);2
    }
    delete Object.values(cards)[x][y];
}

我有一副牌,每次玩家随机选择一张牌时,这张牌就会从那副牌中移除。例如,我将如何专门从甲板上删除数字黑桃 3?

感谢您的宝贵时间和回答。

【问题讨论】:

  • 如果您知道数字总是处于特定位置,即3 总是在索引 1 处,然后您可以访问您选择的键并删除该索引处的元素。

标签: javascript arrays object key key-value


【解决方案1】:

var cards = {
    heart:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    spade:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    diamond:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
    king:[2, 3, 4, 5, 6, 7, 8, 9, 10, "joker", "queen", "king", "ace"],
};

var category = "spade";
var value = 3;
var index = cards[category].indexOf(value);

cards[category].splice(index, 1);

console.log(cards);

【讨论】:

  • 感谢您的回复。不幸的是,这不起作用。
  • 什么不起作用?它从黑桃中删除了 3。
  • 我更新了代码,很抱歉不清楚。这是我的错。每次我从牌组中选择一张牌时,我将如何将其移除?例如,我将如何专门从牌组中删除数字黑桃 3?
猜你喜欢
  • 2020-03-16
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多