随意打乱二维数组输出javascript
时间: 2024-09-27 18:07:46 浏览: 43
在JavaScript中,如果你想随机打乱二维数组的元素顺序,可以采用以下几种方法:
1. **Flatten and shuffle**: 首先将二维数组扁平化成一维数组,然后对这个一维数组进行随机排序。例如:
```javascript
function shuffle二维数组(arr) {
let flatArr = arr.flat();
for (let i = flatArr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[flatArr[i], flatArr[j]] = [flatArr[j], flatArr[i]];
}
return flatArr.reduce((acc, val) => [...acc, [val]], []);
}
// 示例
const arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
const shuffled = shuffle(arr);
```
2. **利用`Array.prototype.sort()` with `Math.random()`**: 直接对二维数组的第一个维度进行操作,这里假设每一行都是独立需要打乱的元素列表:
```javascript
function randomSort(arr) {
arr.sort(() => Math.random() - 0.5);
return arr;
}
const arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]];
shuffled = randomSort(arr.map(subArr => subArr.slice()));
```
注意这会改变原数组。
阅读全文