能否用js隨機(jī)數(shù)實(shí)現(xiàn)隨機(jī)排序

js
小樊
81
2024-10-09 21:45:20

當(dāng)然可以。您可以使用Fisher-Yates洗牌算法來(lái)實(shí)現(xiàn)隨機(jī)排序。以下是使用JavaScript實(shí)現(xiàn)的示例:

function shuffleArray(array) {
  let currentIndex = array.length, temporaryValue, randomIndex;

  // 當(dāng)還剩元素待處理時(shí)
  while (0 !== currentIndex) {
    // 選取一個(gè)剩余元素
    randomIndex = Math.floor(Math.random() * currentIndex);
    currentIndex -= 1;

    // 交換當(dāng)前元素與選取的元素
    temporaryValue = array[currentIndex];
    array[currentIndex] = array[randomIndex];
    array[randomIndex] = temporaryValue;
  }

  return array;
}

// 使用示例
const myArray = [1, 2, 3, 4, 5];
const shuffledArray = shuffleArray(myArray);
console.log(shuffledArray);

這個(gè)函數(shù)接受一個(gè)數(shù)組作為參數(shù),然后使用Fisher-Yates算法對(duì)其進(jìn)行隨機(jī)排序。您可以用這個(gè)函數(shù)來(lái)隨機(jī)排序任何數(shù)組。

0