下面的代码适用于普通数组但不适用于带有对象的数组有人知道如何做到这一点吗?
const array = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function shuffle(array) {
for (let i = array.length - 1; i > 0; i--) {
let j = Math.floor(Math.random() * (i + 1));
let temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
const result = shuffle(array);
console.log(JSON.stringify(result));
原文由 Arne 发布,翻译遵循 CC BY-SA 4.0 许可协议
尝试像这样的片段排序:
回应 Martin Omanders 的评论:这是根据 Fisher-Yates 算法的 洗牌方法
这可能会被压缩为一个衬里( 注意:这个衬里不会在高级级别的 Google Closure 编译器 中编译):