美文网首页让前端飞
【十一】数组洗牌函数

【十一】数组洗牌函数

作者: 大海爱奔跑 | 来源:发表于2020-02-25 10:40 被阅读0次

关于专题【vue开发音乐App】

如何优雅地将一个数组打乱?打乱意味着要随机、没有任何规律,就像洗牌那样,所以用Math.random()生成随机数是个可取的方法。shuffer()有可能在日常开发中使用,所以我们可以归纳到公用的js中去,src/common/js/下新建util.js

// 生成(min, max]之间的随机整数
function getRandomInt(min, max) {
  return Math.floor(Math.random() * (max - min + 1) + min)
}

// 洗牌函数:遍历需要洗牌的数组,每次生成一个0到i的随机整数j,让第i位的元素与第j位的元素互换位置,以达到打乱的目的
export function shuffle(arr) {
  let _arr = arr.slice()
  for (let i = 0; i < _arr.length; i++) {
    let j = getRandomInt(0, i)
    let t = _arr[i]
    _arr[i] = _arr[j]
    _arr[j] = t
  }
  return _arr
}

调用

import {shuffle} from 'common/js/util'

...

let arr = [2, 4, 76, 90, 234, 78, 1, 34, 67, 76, 89, 231, 23, 42, 5, 9]
let list = shuffle()
测试结果

相关文章

  • 【十一】数组洗牌函数

    关于专题【vue开发音乐App】 如何优雅地将一个数组打乱?打乱意味着要随机、没有任何规律,就像洗牌那样,所以用M...

  • 实现数组洗牌函数

    我们可能最常使用打乱数组顺序的方法是 Array.prototype.sort: 但这种方法不是完全随机的。 我们...

  • js面试常见算法题

    数组去重 洗牌算法 写一个函数,统计字符串里出现出现频率最多的字符 冒泡排序

  • 一天一算法 - 基础排序

    准备 在实现排序算法之前,先介绍将用到的几个函数。比如说为了将数组中数字的顺序打乱,我们可能需要一个洗牌函数,为了...

  • python的学习笔记9

    十一、数组的创建 1、通过列表创建数组 2、numpy中定义的原生数组创建函数 (1)numpy.zeros(sh...

  • 2020-03-07 刷题4 设计,数学

    384 打乱数组 标签:洗牌算法,数组本题看得我一脸懵bo,后来看了评论区才知道是要用洗牌算法,也就是保证shuf...

  • JS洗牌函数

    Math.random() 方法:返回介于 0 ~ 1 之间的一个随机数;

  • 函数指针

    概念: 指针函数, 函数指针, 指针数组, 数组指针, 指向数组的指针, 指向函数指针数组的指针。

  • java_扑克牌小程序

    洗牌:数组重新排序 Collections.shuffle(cards);Card:牌的属性TestCard...

  • C语言-2、数组、函数

    数组定义 数组的指针、内存地址、取值 数组大小 函数指针 函数指针2 函数指针3

网友评论

    本文标题:【十一】数组洗牌函数

    本文链接:https://www.haomeiwen.com/subject/brezqhtx.html