JS 数组的随机排序?
时间: 2023-08-13 17:04:32 浏览: 151
JS 数组的随机排序可以通过以下方式实现:
```javascript
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;
}
// 调用方式
const arr = [1, 2, 3, 4, 5];
const shuffledArr = shuffleArray(arr);
console.log(shuffledArr);
```
以上代码会对数组进行原地随机排序,并返回排序后的数组。
相关问题
js 数组随机排序
可以使用 Fisher-Yates 算法来随机排序 JavaScript 数组。这个算法通过遍历数组,将当前元素与随机选择的后面元素进行交换,从而逐步将数组乱序。
以下是一个实现 Fisher-Yates 算法的 JavaScript 代码示例:
```javascript
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;
}
// 示例用法
const arr = [1, 2, 3, 4, 5];
console.log(shuffleArray(arr));
```
在上述代码中,我们定义了一个 `shuffleArray` 函数,它接受一个数组作为参数,并返回乱序后的数组。算法从数组末尾开始,每次迭代时生成一个随机索引 `j`,然后交换当前元素 `array[i]` 和随机选择的元素 `array[j]`。
运行示例代码后,你将得到一个随机排序的数组。
微信小程序 怎么实现数组随机排序
微信小程序中实现数组随机排序,可以使用JavaScript的`Array.prototype.sort()`方法配合Math.random()函数。以下是一个简单的示例:
```javascript
Page({
data: {
arr: [/* 需要排序的数组内容 */] // 例如:[1, 2, 3, 4, 5]
},
randomSort: function() {
this.data.arr.sort(() => {
// 使用Math.random()生成一个0到1之间的随机数
let random = Math.random();
if (random < 0.5) {
// 返回一个小于0的数,使元素升序排列
return -1;
} else {
// 返回一个大于0的数,使元素降序排列
return 1;
}
});
console.log(this.data.arr); // 打印排序后的数组
}
})
```
在这个例子中,每次调用`randomSort`方法,数组中的元素会被随机地放置在新位置,实现了随机排序。如果你想保证每次都得到不同的随机顺序,可以引入一个新的随机种子。
阅读全文