JS石头剪刀布蜥蜴史波克游戏:如何让函数识别多个beats值?
解决方案
1. 修正SELECTIONS常量
JavaScript对象不允许重复属性名,重复的beats键会被最后一个值覆盖,所以需要把每个对象的beats改为数组,存储所有克制的选项:
const SELECTIONS = [ { name: 'fire', emoji: '🔥', beats: ['air', 'lizard'] }, { name: 'water', emoji: '🌊', beats: ['spock', 'fire'] }, { name: 'air', emoji: '💨', beats: ['water', 'lizard'] }, { name: 'lizard', emoji: '🦎', beats: ['air', 'spock'] }, { name: 'spock', emoji: '🧛♂️', beats: ['fire', 'water'] }, ];
2. 修改isWinner函数
利用数组的includes方法,检查对手的选择名称是否在当前选择的克制列表中,这样就能同时判断多个克制关系:
function isWinner(selection, opponentSelection) { return selection.beats.includes(opponentSelection.name); }
内容的提问来源于stack exchange,提问作者Peterman
相关产品推荐
相关产品推荐

