Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 임의의 방식으로 배열을 섞는 방법은 무엇입니까?

<시간/>

_.shuffle()

_.셔플 함수는 underscore.js에 속합니다. , 프레임워크 자바 스크립트의. 이 함수는 실제로 Fisher-Yates 셔플을 사용합니다. 무작위 방식으로 요소를 섞는 알고리즘입니다.

구문

_.shuffle(array);

이 메서드는 배열을 매개 변수로 사용하고 임의의 방식으로 요소를 가져오기 위해 섞습니다. Fisher-Yates 셔플을 사용합니다. 배열을 섞는 알고리즘. 단일 입력에 대해 다양한 무작위 출력을 생성합니다.

<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>

출력

rahim,Balakrishna,pankaj,raj,rachel


Fisher-Yates 셔플 을 사용하여 큰 개체를 셔플할 수도 있습니다. 연산. 단일 입력에 대해 다양한 출력을 제공합니다.

<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>

출력

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