js 实现数组乱序
数组乱序的实现方法
在 JavaScript 中,可以通过多种方法实现数组乱序(随机打乱数组顺序)。以下是几种常见的实现方式:

Fisher-Yates 洗牌算法
Fisher-Yates 算法是一种高效且公正的乱序方法,确保每个元素出现在每个位置的概率均等。

function shuffleArray(array) {
for (let i = array.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
使用 sort 方法结合随机数
利用 Array.prototype.sort 方法结合随机数生成器实现乱序。需要注意的是,这种方法在某些情况下可能不够均匀。
function shuffleArray(array) {
return array.sort(() => Math.random() - 0.5);
}
使用 Lodash 库的 _.shuffle 方法
如果项目中已经引入了 Lodash 库,可以直接使用其提供的 _.shuffle 方法。
const _ = require('lodash');
const shuffledArray = _.shuffle(originalArray);
注意事项
- Fisher-Yates 算法是推荐的方法,因为它的性能和随机性更好。
- 使用
sort方法结合随机数的方式虽然简洁,但可能在某些 JavaScript 引擎中表现不佳。 - 如果需要多次执行乱序操作,建议封装为可复用的函数。






