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

JavaScript实现随机将姓名推入两个数组功能时代码异常如何排查

代码问题排查及修复方案

现存问题列表

  • 全局调用方法时上下文错误:全局作用域下的this不指向luckGame对象,无法正确调用对象内的pushGamer方法
  • pushGamer方法逻辑缺失:当前仅返回传入的姓名,没有存储传入的姓名供后续入组逻辑使用
  • pushGamerIntoArray方法存在语法错误:return后多余的花括号会被解析为返回对象字面量,内部写if属于非法语法
  • 入组逻辑未关联传入的姓名:pushGamerIntoArray调用pushGamer时没有传参,拿到的是undefined,推入数组的内容为空
  • 核心入组方法未调用:全程没有执行pushGamerIntoArray方法,数组不会自动填充数据
  • getRandomNumber方法存在冗余参数:形参random无实际作用,属于无效代码

修复后的可运行代码

const luckGame = {
    _lucky: [],
    _unlucky: [],
    // 接收姓名后直接触发随机入组逻辑
    pushGamer(name) {
        this.pushGamerIntoArray(name);
    },
    // 移除冗余参数
    getRandomNumber () {
        return Math.floor(Math.random() * 2);
    },
    // 移除多余的return和花括号,新增姓名入参执行入组逻辑
    pushGamerIntoArray (name) {
        if (this.getRandomNumber() === 0 ) {
            this._lucky.push(name);
        } else {
            this._unlucky.push(name);
        }
    },
};

// 修正调用对象,直接调用luckGame的方法
luckGame.pushGamer('John');
luckGame.pushGamer('Nick');
luckGame.pushGamer('Maria');
luckGame.pushGamer('Sarah');
luckGame.pushGamer('Ron');
luckGame.pushGamer('Lisa');


console.log(luckGame._lucky);
console.log(luckGame._unlucky);

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 20:54:03