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

调用getComputerChoice()函数时出现TypeError:无法读取undefined的length属性

问题分析与解决

错误原因

你定义getComputerChoice函数时声明了参数options,这个参数会覆盖全局作用域的同名变量。当你调用getComputerChoice()时没有传入任何参数,函数内部的options就变成了undefined,因此无法读取它的length属性,触发了TypeError。

解决方法

有两种可行的修复方式:

方式1:移除函数的options参数

让函数直接使用全局作用域的options数组:

var options = ["rock", "paper", "scissor"];

function getComputerChoice() {
    let choice = options[Math.floor(Math.random() * options.length)];
    console.log(choice);
}

getComputerChoice();

方式2:调用函数时传入全局数组

保持函数参数不变,调用时把全局的options传进去:

var options = ["rock", "paper", "scissor"];

function getComputerChoice(options) {
    let choice = options[Math.floor(Math.random() * options.length)];
    console.log(choice);
}

getComputerChoice(options);

小建议

另外,单词scissor的正确复数形式是scissors,虽然这不是当前错误的原因,但修正后更符合英语表达习惯。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 12:02:11