React中如何实现从指定数字集合随机选取数字的函数?
修复从多参数中返回随机数的函数问题
你的函数每次返回第一个参数的原因很明确:
- 你定义函数时只声明了单个参数
numbers,调用randomInside(10,20,25,45)时,numbers只会获取到第一个传入的值10 - 之后你把这个值包装成数组
[numbers],这个数组的长度永远是1,所以Math.floor(Math.random() * array.length)的结果永远是0,自然每次返回第一个参数
修复方案:使用剩余参数语法
用...剩余参数语法接收所有传入的参数,这样所有参数会自动被收集成一个数组,无需手动包装:
const randomInside = (...numbers) => { // 可选:处理无参数传入的情况,避免报错 if (numbers.length === 0) { return undefined; // 也可以抛出错误或返回默认值,按需调整 } const newIndex = Math.floor(Math.random() * numbers.length); return numbers[newIndex]; };
调用randomInside(10,20,25,45)时,numbers会直接变成[10,20,25,45],随机索引会在0到3之间生成,从而返回其中一个随机数字。
内容的提问来源于stack exchange,提问作者JeremyFc
相关产品推荐
相关产品推荐

