当前位置: 首页 > news >正文

网站使用问题企业网站建设经济效益分析

网站使用问题,企业网站建设经济效益分析,成都科盛兴网站建设有限公司,汕头建站模板一、面试题问#xff1a;有一个长度为 100 的数组#xff0c;如何从中随机挑选 50 个元素#xff0c;组成一个新的数组#xff1f;答#xff1a;这个...那个...emmmmmm问#xff1a;那先不挑 50 个#xff0c;就挑一个数#xff0c;知道怎么做吗#xff1f;答#xf…一、面试题问有一个长度为 100 的数组如何从中随机挑选 50 个元素组成一个新的数组答这个...那个...emmmmmm问那先不挑 50 个就挑一个数知道怎么做吗答这个我知道随机生成一个 0 ~ 99 的数然后去原数组取对应位置的元素就可以了let randomIndex arr[Math.floor(Math.random() * arr.length)];问好回到最初的问题怎么挑选 50 个元素答我知道了在 0 99 的范围内随机生成 50 个不重复的数字问是这个思路具体的实现呢记得保证效率哦。答(吧啦吧啦吧啦)问现在假设数组的元素都是 String 类型如果要把这个数组元素的顺序打乱有什么办法么答数组的 sort() 方法可以传入一个函数作为参数这个函数的返回值可以决定排列顺序。在这个函数中写一个随机数然后就能乱序了。问这是一个思路但这只是伪随机。答啊咧问听说过“洗牌算法”吗二、随机取数按照上面随机挑选一个数的思路从原数组中随机抽取一个数然后使用 splice 删掉该元素function getRandomArrElement(arr, count) { let res [] while (res.length count) { // 生成随机 index let randomIdx (Math.random() * arr.length) 0; // splice 返回的是一个数组 res.push(arr.splice(randomIdx, 1)[0]); } return res}上面生成随机 index 用到了按位右移操作符 当后面的操作数是 0 的时候该语句的结果就和 Math.floor() 一样是向下取整但位操作符是在数值表示的最底层执行操作因此速度更快// 按位右移(Math.random() * 100) 0// Math.floorMath.floor(Math.random() * 100)/* 这两种写法的结果是一样的但位操作的效率更高 */三、通过 sort 乱序首先认识一下 Array.prototype.sort()这个方法可以传入一个参数 compareFunction这个参数必须是函数同时 sort() 会暴露出 Array 中的两个元素 (a, b) 作为参数传给 compareFunctionsort() 会根据 compareFunction(a, b) 的返回值来决定 a 和 b 的相对位置如果 compareFunction(a, b) 小于 0 那么 a 会被排列到 b 之前如果 compareFunction(a, b) 大于 0 那么 b 会被排列到 a 之前如果 compareFunction(a, b) 等于 0 a 和 b 的相对位置不变(不稳定)根据以上规则可以在 compareFunction 中生成一个随机数然后根据随机数做运算返回一个正负未知的 Number从而实现乱序function randomSort(a,b) { return .5 - Math.random(); }let arr [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];arr.sort(randomSort);但这并不是真正的乱序计算机的 random 函数因为循环周期的存在无法生成真正的随机数 四、Fisher–Yates shuffle 洗牌算法洗牌算法的思路是先从数组末尾开始选取最后一个元素与数组中随机一个位置的元素交换位置然后在已经排好的最后一个元素以外的位置中随机产生一个位置让该位置元素与倒数第二个元素进行交换以此类推打乱整个数组的顺序function shuffle(arr) { let len arr.length; while (len) { let i (Math.random() * len--) 0; // 交换位置 let temp arr[len]; arr[len] arr[i]; arr[i] temp; } return arr;}再结合 ES6 的解构赋值使用洗牌算法就更方便了Array.prototype.shuffle function() { let m this.length, i; while (m) { i (Math.random() * m--) 0; [this[m], this[i]] [this[i], this[m]] } return this;}五、用洗牌算法随机取数再回到从长度为 100 的数组中取 50 个数的问题之前用的是 splice 修改原数组如果结合洗牌算法又会有别的思路最好是自己先思考一下然后再展开代码进行比较function getRandomArrElement(arr, count) { let shuffled arr.slice(0), i arr.length, min i - count, temp, index; while (i min) { index Math.floor((i--) * Math.random()); temp shuffled[index]; shuffled[index] shuffled[i]; shuffled[i] temp; } return shuffled.slice(min);}用洗牌算法从数组中随机取数最后放个彩蛋关于两种随机取数的性能孰优孰劣我用 Array.form 生成了一个长度为一百万的数组然后从中随机取十万个数首先是使用 splice 的方案 然后是洗牌算法希望对你有用。
http://www.zqtcl.cn/news/463286/

相关文章:

  • 网站后台图片模板前端作业做一个网站
  • 做兼职的翻译网站吗教育直播网站开发
  • pxhere素材网站电子商务的网站开发的工作内容
  • 邮件网站怎么做wordpress如何代码高亮
  • 电脑做视频的网站吗中小学 网站建设 通知
  • 给企业做网站赚钱吗吉 360 网站建设
  • 网站建设多少价格东莞网站推广团队
  • 做课件的软件下载带有蓝色的网站html网页制作代码实例
  • 建设银行鄂州分行官方网站健身网站开发方式
  • 大连免费建站模板花坛设计平面图
  • 建设网站对企业有什么好处wordpress教程视频下载
  • 郑州网站提升排名上海 企业 网站建设
  • 南昌好的做网站的公司营销型网站 案例
  • 南宁经典网站建设网络运维工程师是干什么的
  • 网站开发算法建网站难不难
  • 茂名模板建站定制网站开发 ide
  • 做网站现在用什么语言网站估价
  • wap开头的网站外贸网站建设官网
  • 做网站说什么5.0啥意思wordpress教程视频 下载
  • 业务型网站做seo郑州网站推广优化
  • 400网站建设南昌网站建设方案详细版
  • 网站评论回复如何做中国住建部和城乡建设官网
  • 怎么建设网站南京做南京华美整容网站
  • 有哪些可以做1元夺宝的网站推广网站哪家做的好
  • 网站备案 域名不是自己的成都电子商务网站
  • 网站内容管理系统建设2021年建站赚钱
  • 网站建设交流发言稿找做网站的上什么app
  • 企业如何应用网站的wordpress lensnews
  • 可信的邢台做网站学电商运营需要多少钱
  • 网站中文名称做微商进哪个网站安全