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
相关产品推荐
相关产品推荐

