Computer >> Máy Tính >  >> Lập trình >> Javascript

Làm cách nào để xáo trộn một mảng một cách ngẫu nhiên trong JavaScript?

_.shuffle ()

_.shuffle là một hàm thuộc về underscore.js , một khuôn khổ của javascript. Chức năng này thực sự sử dụng Fisher-Yates shuffle thuật toán xáo trộn các phần tử một cách ngẫu nhiên.

cú pháp

_.shuffle(array);

Phương thức này nhận một mảng làm tham số và xáo trộn nó để lấy các phần tử theo cách ngẫu nhiên. Nó sử dụng Fisher-Yates shuffle thuật toán xáo trộn các mảng. Đối với một đầu vào duy nhất, nó tạo ra nhiều đầu ra ngẫu nhiên khác nhau.

Ví dụ

<html>
<body>
<script
   type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
   document.write(_.shuffle(["raj", "pankaj", "rahim", "rachel", "Balakrishna"]))
</script>
</body>
</html>

Đầu ra

rahim,Balakrishna,pankaj,raj,rachel


Nó cũng có thể xáo trộn các vật thể lớn bằng cách sử dụng Fisher-Yates shuffle thuật toán. Đối với một đầu vào duy nhất, nó đưa ra nhiều đầu ra khác nhau.

Ví dụ

<html>
<body>
<script
   src="//cdnjs.cloudflare.com/ajax/libs/lodash.js/0.10.0/lodash.min.js"></script>
</head>
<body>
<script>
   var people = [
                 {"name": "Ram", "age": 27},
                 {"name": "Rahim", "age": 28},
                 {"name": "Rakul", "age": 29},
                 {"name": "Rohti", "age": 21}
                ]
   document.write(JSON.stringify(_.shuffle(people, 'age')));
</script>
</body>
</html>

Đầu ra

[{"name":"Rahim","age":28},{"name":"Rakul","age":29},{"name":"Ram","age":27},{"name":"Rohti","age":21}]