You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript如何随机获取外层对象后抽取其内部嵌套的随机对象

嵌套对象随机抽卡实现方案

你已完成外层花色随机抽取的核心逻辑,只需补充对应内层对象的随机抽取逻辑即可满足需求,完整实现如下:

var palos= {
    espada: {
        uno:70, dos:45, tres:50, cuatro:5, cinco:10, seis:15, siete:60, diez:25, once:30, doce:35
    },
    basto: {
        uno:65, dos:45, tres:50, cuatro:5, cinco:10, seis:15, siete:20, diez:25, once:30, doce:35
    },
    Oro: {
        uno:40, dos:45, tres:50, cuatro:5, cinco:10, seis:15, siete:55, diez:25, once:30, doce:35
    },
    copa: {
        uno:40, dos:45, tres:50, cuatro:5, cinco:10, seis:15, siete:20, diez:25, once:30, doce:35
    },
}

// 随机抽取外层花色
const palosKeys = Object.keys(palos);
const randomPalos = palosKeys[Math.floor(Math.random() * palosKeys.length)];
// 基于选中的花色,随机抽取内层卡牌
const selectedPalosCards = palos[randomPalos];
const cardKeys = Object.keys(selectedPalosCards);
const randomCard = cardKeys[Math.floor(Math.random() * cardKeys.length)];

// 输出结果
console.log('选中花色:', randomPalos);
console.log('选中卡牌:', randomCard);
console.log('卡牌对应数值:', selectedPalosCards[randomCard]);

如果需要频繁调用抽卡逻辑,可以封装为复用函数:

function drawRandomCard() {
    const palosKeys = Object.keys(palos);
    const randomPalos = palosKeys[Math.floor(Math.random() * palosKeys.length)];
    const selectedPalosCards = palos[randomPalos];
    const cardKeys = Object.keys(selectedPalosCards);
    const randomCard = cardKeys[Math.floor(Math.random() * cardKeys.length)];
    return {
        type: randomPalos,
        name: randomCard,
        value: selectedPalosCards[randomCard]
    }
}

// 调用示例
const myCard = drawRandomCard();
console.log(myCard);

内容的提问来源于stack exchange,提问作者atallpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 21:24:04