如何让函数按指定次数从数组中获取随机值?
解决方案:让函数支持自定义随机值数量
很容易改造你的函数来实现这个需求!核心思路就是给函数加一个参数,用来指定要生成的随机值数量,然后通过循环批量生成并添加到数组里。
首先先修正你原代码里的一个小问题:game.colors里的颜色值需要加引号,不然会被当作未定义的变量,导致报错。
接下来是改造后的完整代码:
game.colors = ['red', 'green', 'blue', 'yellow']; game.computerMoves = []; // 给函数添加count参数,默认值设为1,兼容原来的单值生成功能 function getRandomMoves(count = 1) { // 可选:如果你希望每次调用都生成全新的一组随机值(而不是追加到已有数组),就加上这行清空数组 // game.computerMoves = []; // 循环count次,每次生成一个随机颜色并推入数组 for (let i = 0; i < count; i++) { const randomColor = game.colors[Math.floor(Math.random() * game.colors.length)]; game.computerMoves.push(randomColor); } return game.computerMoves; }
怎么使用?
- 要生成6个随机值:调用
getRandomMoves(6),返回的数组里就会有6个随机颜色 - 要生成9个随机值:调用
getRandomMoves(9) - 如果还是只需要1个,直接调用
getRandomMoves()或者getRandomMoves(1)都可以,和原来的功能保持一致
额外说明
如果你不希望每次调用都往已有数组里追加,而是每次生成全新的独立数组,就把代码里注释的那行 game.computerMoves = []; 取消注释,这样每次调用函数都会先清空数组,再生成新的一组随机值。
内容的提问来源于stack exchange,提问作者icewizard
相关产品推荐
相关产品推荐

