用js封装一个函数,调用函数可以对传入的数组元素进行随机排序
时间: 2023-09-23 07:06:40 浏览: 109
JS从数组中随机取出几个数组元素的方法
### 回答1:
好的,以下是我的回答:
可以使用以下代码实现:
function shuffleArray(array) {
for (let i = array.length - 1; i > ; i--) {
const j = Math.floor(Math.random() * (i + 1));
[array[i], array[j]] = [array[j], array[i]];
}
return array;
}
调用函数时,传入一个数组作为参数,函数会返回一个随机排序后的数组。
例如:
const myArray = [1, 2, 3, 4, 5];
const shuffledArray = shuffleArray(myArray);
console.log(shuffledArray); // [5, 2, 1, 4, 3] (随机排序后的数组)
### 回答2:
要用 JavaScript 封装一个函数来实现对传入的数组元素进行随机排序,可以使用 Fisher-Yates 算法来实现。
```javascript
function randomSort(arr) {
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1)); // 生成 0 到 i 之间的随机整数
[arr[i], arr[j]] = [arr[j], arr[i]]; // 交换元素位置
}
return arr;
}
```
以上的函数 `randomSort` 接受一个数组作为参数,通过循环从最后一个元素开始,生成一个随机整数 `j`,然后交换当前元素和随机位置 `j` 的元素。重复这个过程直到所有元素都被遍历,最终返回随机排序后的数组 `arr`。
使用方法如下:
```javascript
const originalArray = [1, 2, 3, 4, 5];
const randomArray = randomSort(originalArray);
console.log(randomArray); // 随机排序后的数组
```
以上代码的输出结果将会是一个随机排序的 `randomArray` 数组,例如 `[3, 5, 1, 2, 4]`。
阅读全文