求助:如何从数组中返回随机字符串?
求助:如何从数组中返回随机字符串?
嘿,我来帮你捋捋这个问题~你的代码其实已经做了最关键的两步:定义了包含选项的数组,也算出了随机索引,但差了最核心的一步——把选中的元素返回出去,而且还有个小细节可以优化,让代码更灵活。
你看,现在你的函数getComputerChoice里没有return语句,所以调用它的时候自然会输出undefined。咱们来改一改:
首先,把硬写的3换成数组的length属性,这样以后要是你想给数组加新元素(比如加个'lizard'或者'spock'),不用手动改这个数字,代码自己会适配数组长度。然后用你算出的随机索引去数组里取对应的元素,最后return这个元素就行。
修改后的代码是这样的:
function getComputerChoice() { // 变量名用小驼峰更符合JavaScript的命名规范哦 const myStrings = ['rock', 'paper', 'scissors']; // 用数组长度代替固定的3,扩展性更好 const randomIndex = Math.floor(Math.random() * myStrings.length); // 返回选中的随机字符串 return myStrings[randomIndex]; } console.log(getComputerChoice());
简单解释下:Math.random()生成0到1之间的随机小数,乘以数组长度后得到0到数组长度(不包含)的数,Math.floor()把这个数向下取整,就得到了0、1、2这些合法的数组索引,最后用索引取出数组里的元素返回,调用函数就能拿到随机的字符串啦~
备注:内容来源于stack exchange,提问作者Dafe Victor
相关产品推荐
相关产品推荐

