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

JavaScript中getRandomCard函数异常:始终返回11的问题求助

问题分析与解决:二十一点getRandomCard函数始终返回11

问题原因

你这段代码有两个关键错误,导致函数永远返回11:

  1. 赋值/比较运算符混淆:if (randomNumber = 1)里用的是赋值运算符=,不是比较用的==或===。这行代码会直接把1赋值给randomNumber,而这个赋值表达式的结果也是1,会直接触发第一个if分支返回11,后面的逻辑根本不会执行。
  2. else if条件写法错误:randomNumber = 11, 12, 13不仅错用了赋值运算符,逗号运算符在这里只会取最后一个值13,就算改成比较,这种写法也无法判断数值是否是11、12、13中的一个。

解决方法

修正运算符和条件判断逻辑,这里提供两种可行的写法:

写法一:使用逻辑或(||)判断

function getRandomCard() {
    let randomNumber = Math.floor(Math.random() * 13) + 1;
    if (randomNumber === 1) {
        return 11;
    } else if (randomNumber === 11 || randomNumber === 12 || randomNumber === 13) {
        return 10;
    } else {
        return randomNumber;
    }
}

console.log(getRandomCard());

写法二:使用数组includes方法(更简洁)

function getRandomCard() {
    let randomNumber = Math.floor(Math.random() * 13) + 1;
    if (randomNumber === 1) {
        return 11;
    } else if ([11, 12, 13].includes(randomNumber)) {
        return 10;
    } else {
        return randomNumber;
    }
}

console.log(getRandomCard());

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:10:31