JavaScript对象引用返回undefined,石头剪刀布游戏代码问题咨询
问题原因
你写的object.userval是在直接访问对象里名为userval的属性,但你的对象里根本没有这个键——JavaScript会把点后面的内容直接当成属性名的字符串,而不是读取变量userval的值。对象里只有R、P、S三个键,找不到userval对应的属性,所以输出undefined。
解决方法
要根据变量的值去匹配对象的键,得用方括号语法,把变量放在方括号里,这样JavaScript会先读取变量的内容,再去对象里找对应键的值:
let userval = prompt("enter R,P,S"); const object={ R : "ROCK", P : "PAPER", S : "SCISSOR" }; console.log(object[userval])
这样用户输入R时,就会输出ROCK,输入P输出PAPER,输入S输出SCISSOR。
额外小建议:如果用户不小心输入了小写字母(比如r),代码会找不到对应属性,你可以把输入转成大写,提升容错性:
let userval = prompt("enter R,P,S").toUpperCase(); const object={ R : "ROCK", P : "PAPER", S : "SCISSOR" }; console.log(object[userval])
内容的提问来源于stack exchange,提问作者seth rolling
相关产品推荐
相关产品推荐

