如何在 JavaScript 中随机打乱数组?
Shuffle(洗牌)意味着您正在重新排列数组元素或将其混合以产生随机顺序。
_.shuffle() 属于 underscore.js,这是一个提供通用功能的 JavaScript 库。它用于以随机方式排列数组元素列表,它使用 Fisher-Yates 洗牌算法。
因此,每次执行代码时,这都会根据 Fisher-Yates 洗牌算法以不同的顺序输出结果。以下是 _.shuffle() 函数的示例:
_.shuffle(list)
参数 - 此函数接受单个参数列表。该参数用于保存将在洗牌时使用的项目列表。
返回值 - 返回值是一个全新的随机数组,其中包含原始数组中所有可用的元素,如传递到 _.shuffle() 函数一样。
示例 1:将数字数组传递给 _.shuffle() 函数
_.shuffle() 函数一次从原始数组中获取一个列表。并根据 Fisher-Yates 洗牌算法执行指定的运算。
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
</head>
<body>
<script type="text/javascript">
document.write(_.shuffle([1, 2, 3, 4, 5, 6]));
</script>
</body>
</html>
在以上输出中,每次刷新页面时,它都会根据页面重新加载给出不同的输出。以上 Javascript 代码在重新加载页面后随机重新排列输出。
示例 2:将结构传递给 _.shuffle() 函数
将结构传递给 _.shuffle() 函数。首先,我们创建了一个名为 details 的数组并将该数组传递到 _.shuffle() 函数中。“details”数组的元素将被打乱。
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
</head>
<body>
<script type="text/javascript">
var details = [{
"category": "Tutorials",
"title": "Point",
"id": "1"
},
{
"category": "easy",
"title": "to",
"id": "2"
},
{
"category": "learn",
"title": "here",
"id": "3"
},
];
document.write(JSON.stringify(_.shuffle(details)));
</script>
</body>
</html>
示例 3:将数组传递给 _.shuffle() 函数
声明一个具有属性“num”的数组“users”,然后将其传递到 _.shuffle() 函数中,并使用参数 users 和 id。
<!DOCTYPE html>
<html>
<head>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
</head>
<body>
<script type="text/javascript">
var users = [
{ "num": "1" },
{ "num": "2" },
{ "num": "3" }
];
document.write(JSON.stringify(_.shuffle(users, 'id')));
</script>
</body>
</html>
示例 4:使用 sort() 和 Math.random()
以下示例演示了在 JavaScript 中使用 sort() 和 Math.random() 方法。
<!DOCTYPE html>
<html lang="en">
<head>
<title>Shuffle an array in a random manner</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"></script>
<div id="shuffle"></div>
</head>
<body>
<script>
let arr = new Array("Alice", 40, "Edward", 39, "cullen");
arr = arr.sort(() => Math.random() - 1 / 2);
document.getElementById("shuffle").innerHTML = "Shuffle an array in a random manner : " + arr;
</script>
</body>
</html>
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP