在JavaScript中,要实现数组的随机打乱(即打乱数组元素的顺序),一种常见且简洁的方法是使用Fisher-Yates洗牌算法。下面是一个使用Fisher-Yates洗牌算法打乱数组的实现代码:
function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
// 生成一个0到i(包括i)的随机索引
const j = Math.floor(Math.random() * (i + 1));
// 交换array[i]和array[j]
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
// 示例使用
const myArray = [1, 2, 3, 4, 5];
const shuffledArray = shuffleArray(myArray);
console.log(shuffledArray); // 输出将会是myArray的一个随机打乱版本
这段代码定义了一个`shuffleArray`函数,它接受一个数组作为参数,并返回该数组的一个随机打乱版本。在函数内部,通过一个循环从数组的末尾开始向前遍历,每次迭代中都会随机选择一个前面的元素与当前元素交换位置,从而实现了数组的随机打乱。