_lib.random.js 877 B

12345678910111213141516171819202122232425262728
  1. function getRandomFromList(list) {
  2. // 将列表转换为数组
  3. const array = Array.isArray(list) ? list : Array.from(list);
  4. // 获取随机索引
  5. const randomIndex = Math.floor(Math.random() * array.length);
  6. // 返回随机选取的元素
  7. return array[randomIndex];
  8. }
  9. /**
  10. * 对数组进行随机乱序(Fisher-Yates 洗牌算法)
  11. * @param {Array} array - 需要乱序的数组
  12. * @returns {Array} - 返回乱序后的新数组
  13. */
  14. function shuffleArray(array) {
  15. const result = [...array]; // 创建数组副本,避免修改原数组
  16. for (let i = result.length - 1; i > 0; i--) {
  17. const randomIndex = Math.floor(Math.random() * (i + 1)); // 随机索引
  18. [result[i], result[randomIndex]] = [result[randomIndex], result[i]]; // 交换元素
  19. }
  20. return result;
  21. }
  22. $.exports = {
  23. getRandomFromList,
  24. shuffleArray
  25. }