推荐答案
function sample(arr) { if (!Array.isArray(arr) || arr.length === 0) { return undefined; // 如果数组为空或不是数组,返回 undefined } const randomIndex = Math.floor(Math.random() * arr.length); return arr[randomIndex]; }
本题详细解读
1. 函数功能
sample(arr)
函数的作用是从给定的数组 arr
中随机选取一个元素并返回。
2. 参数说明
arr
: 一个数组,函数将从该数组中随机选取一个元素。
3. 返回值
- 如果
arr
是一个非空数组,函数返回数组中随机选取的一个元素。 - 如果
arr
为空数组或不是数组,函数返回undefined
。
4. 实现细节
- 数组检查: 首先检查
arr
是否为数组且不为空。如果不是数组或为空数组,直接返回undefined
。 - 随机索引生成: 使用
Math.random()
生成一个 0 到 1 之间的随机数,乘以数组长度arr.length
,然后使用Math.floor()
向下取整,得到一个随机的数组索引。 - 返回随机元素: 根据生成的随机索引,返回数组中对应的元素。
5. 示例
const arr = [1, 2, 3, 4, 5]; console.log(sample(arr)); // 可能输出 1, 2, 3, 4, 或 5 中的任意一个 console.log(sample([])); // 输出 undefined console.log(sample("not an array")); // 输出 undefined
6. 注意事项
- 该函数假设输入的
arr
是一个数组。如果传入其他类型的值(如字符串、对象等),函数会返回undefined
。 - 如果数组中有多个相同的元素,每个元素被选中的概率是相同的。