JavaScript 如何洗牌一个数组
洗牌 一个数组或者列表意味着我们随机重新排序该结构的内容。为了洗牌一个数组,我们将使用以下算法:
方法 1: 在这种方法中,我们将以相反的顺序使用数组元素,然后将每个元素与一个随机元素交换。
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
// Generate random number
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
示例: 在这个示例中,我们使用了以上的方法。
<p>Array is=[1, 2, 3, 4, 5, 6, 7]</p>
<button onclick="show()">
click
</button>
<script>
// Function to shuffle the array content
function shuffleArray(array) {
for (var i = array.length - 1; i > 0; i--) {
// Generate random number
var j = Math.floor(Math.random() * (i + 1));
var temp = array[i];
array[i] = array[j];
array[j] = temp;
}
return array;
}
// Function to show the result
function show() {
var arr = [1, 2, 3, 4, 5, 6, 7]
var arr1 = shuffleArray(arr)
document.write("After shuffling: ", arr1)
}
</script>
输出:
方法 2: 通过将一个返回(随机值 – 0.5)的函数作为比较器传递给排序函数,以便按随机方式对元素进行排序。
function shuffleArray(array) {
return array.sort( ()=>Math.random()-0.5 );
}
示例: 此示例演示了上述解释的方法的使用。
<p>Array is=[1, 2, 3, 4, 5, 6, 7]</p>
<button onclick="show()">
click
</button>
<script>
// Function to shuffle the array content
function shuffleArray(array) {
return array.sort(() => Math.random() - 0.5);
}
// Function to show the result
function show() {
var arr = [1, 2, 3, 4, 5, 6, 7]
var arr1 = shuffleArray(arr)
document.write("After shuffling: ", arr1)
}
</script>
输出: