JavaScript数组对象实现增加一个返回随机元素的方法
本文实例讲述了JavaScript数组对象实现增加一个返回随机元素的方法。分享给大家供大家参考。具体如下:
核心特性:
概率随机、顺序随机、随机冒泡
本方法 来自个人手写 JavaScript 的实践,只涉及 JavaScript 1.5(ECMAscript 3 国际标准)语言本身,在所有 JS 引擎实现中通用~
为Array对象新增random方法:
(function () { function Random_SN(iArray) { return Math.floor(Math.random() * iArray.length); } function Probability_Random(iArray) { var Random_Int; if (iArray.Random_SN === undefined) iArray.Random_SN = -1; do Random_Int = Random_SN(iArray); while ( Random_Int == iArray.Random_SN ) iArray.Random_SN = Random_Int; return iArray[Random_Int]; } function Sequence_Random(iArray) { return iArray.splice(Random_SN(iArray), 1)[0]; } Array.prototype.random = function (Mode, Pop) { if (! Mode) return Probability_Random(this); if (! Pop) { if (! (this.Random_Queue && this.Random_Queue.length)) this.Random_Queue = [].concat(this); return Sequence_Random(this.Random_Queue); } return Sequence_Random(this); }; })();
使用示例:
// 【概率随机】 // // 元素的返回 完全随机,出现几率不定,有限次调用不保证能返回所有元素 var iElement = iArray.random(); // 【顺序随机】 // // 元素的返回 有周期性,在每个周期内,元素都出现一次,但顺序不定 var iElement = iArray.random(true); // 【随机冒泡】 // // 每次调用都从原数组中随机取出一个元素返回(原数组 就地改变) var iElement = iArray.random(true, true);
希望本文所述对大家的javascript程序设计有所帮助。
相关推荐
-
javascript 返回数组中不重复的元素
这是实现结构伪类type-of-type的部分代码: var ret= ["span","span","strong","span","b"] var norepeat = function(array){ var set = array.join(",")+","; while(array.length){ var el = array.shift(); set =
-
JS返回只包含数字类型的数组实例分析
本文实例分析了JS返回只包含数字类型的数组实现方法.分享给大家供大家参考,具体如下: 实现效果如:js123ldka78sdasfgr653 => [123,78,653] 一般做法 分析: 1.循环字符串每个字符,是数字的挑出来拼接在一起,不是数字的,就给他空的拼个逗号 2.将新字符串每一位转换为数组,再次遍历,存在的挑出来,即得到结果 var str="js123ldka78sdasfgr653"; var new_str=""; var arr=[];
-
js对ajax返回数组的处理介绍
引言:ajax异步传输,可以传输字符串,但是数组这样的数据,就不太好传递了,这个时候怎么办呢? 答案是可以通过json来处理,后台将数据数据进行json编码! 然后客户端,通过js来进行解析. 这样问题就解决了!json是一种很好的数据格式! 我做的是异步判断某堂课是否处于上课状态,会从后台接口中获取数组数据!共四堂课, 代码如下: 复制代码 代码如下: function ajaxcheckedlessonsAction(){ //3583 语文 8班 //1500
-
用js实现随机返回数组的一个元素
复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- var test = ["aa","bb","cc","dd","ee"]; document.write(test[Math.floor(Math.random()*test.length)]); setInterval("location.reload()&quo
-
JS数组返回去重后数据的方法解析
话不多说,请看代码: function removeRepeat(data) { var temp = ""; var mainData = []; for (var i = 0; i < data.length; i++) { if (!data[i].parent) { temp = data[i]; for (var j = 0; j < data.length; j++) { if (temp.DeliveryType == data[j].DeliveryType
-
jQuery处理json数据返回数组和输出的方法
本文实例讲述了jQuery处理json数据返回数组和输出的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: /*print the json object * *$("selector").print_r_json(json,opts) : return formatted string (and print) *sprint_r_json : just return the string; *print_r_json : return the format
-
JavaScript数组对象实现增加一个返回随机元素的方法
本文实例讲述了JavaScript数组对象实现增加一个返回随机元素的方法.分享给大家供大家参考.具体如下: 核心特性: 概率随机.顺序随机.随机冒泡 本方法 来自个人手写 JavaScript 的实践,只涉及 JavaScript 1.5(ECMAscript 3 国际标准)语言本身,在所有 JS 引擎实现中通用~ 为Array对象新增random方法: (function () { function Random_SN(iArray) { return Math.floor(Math.rand
-
javascript数组对象常用api函数小结(连接,插入,删除,反转,排序等)
本文实例讲述了javascript数组对象常用api函数.分享给大家供大家参考,具体如下: 1. concat() 连接两个或多个数组,并返回结果 var a = [1,2,3]; var b = a.concat(6,7); console.log(a); //[1,2,3] console.log(b); //[1,2,3,6,7] 2. join(str) 把数组的所有元素用str分隔,默认逗号分隔 var a = [1,2,3] var b = a.join('|'); console.
-
JQuery $.each遍历JavaScript数组对象实例
查看一个简单的jQuery的例子来遍历一个JavaScript数组对象. var json = [ {"id":"1","tagName":"apple"}, {"id":"2","tagName":"orange"}, {"id":"3","tagName":"banana&q
-
JavaScript数组对象赋值用法实例
本文实例讲述了JavaScript数组对象赋值用法.分享给大家供大家参考.具体如下: 这里JavaScript数组对象的使用会使你的JS程序变得简洁而有效率,但是好像不少新手都不喜欢用数组,因为觉得它们抽象,不好理解,其实只要你认真领悟,它就像捅破窗户纸一样,令你豁然开朗.希望通过本实例,你对数组会有更多的理解. 运行效果图如下: 具体代码如下: <html> <head> <meta http-equiv="content-type" content=&
-
PHP函数shuffle()取数组若干个随机元素的方法分析
本文实例讲述了PHP函数shuffle()取数组若干个随机元素的方法.分享给大家供大家参考,具体如下: 有时候我们需要取数组中若干个随机元素(比如做随机推荐功能),那么PHP要如何实现呢?一个比较简单的解决方法是用PHP自带的shuffle()函数.下面举一个简单的例子: $data[] = array( "name" => "我们", "rank" => "40" ); $data[] = array( &quo
-
用JavaScript动态建立或增加CSS样式表的实现方法
1.简单的方法,不管不顾,直接这样就可以: document.createStyleSheet().cssText = '标签{color:red;' + // 这个注释只在当前JS中帮助理解,并不会写入CSS中 'width:300px;height:150px}' + '.类名{--}' + '#ID们{--}' ; //完活.我喜欢分号这样写,和指令书写的起始位置对齐比较好一点,尤其是后面有其它语句的时候. 2.完善一点的方法,防止重复添加,可以通过添加样式表ID并对其判断来实现: if
-
C#比较二个数组并找出相同或不同元素的方法
本文实例讲述了C#比较二个数组并找出相同或不同元素的方法.分享给大家供大家参考,具体如下: string[] arr1 = new[] { "1", "2", "3", "4", "5" }; string[] arr2 = new[] { "1", "3", "5" }; var sameArr = arr1.Intersect(arr2).To
-
Python判断一个list中是否包含另一个list全部元素的方法分析
本文实例讲述了Python判断一个list中是否包含另一个list全部元素的方法.分享给大家供大家参考,具体如下: 你可以用for in循环+in来判断 #!/usr/bin/env python # coding: utf-8 a = [1, 2, 3, 4, 5] b = [3, 4, 5] d = [False for c in b if c not in a] if d: print "a不包含b的所有元素" else: print "a包含b的所有元素"
-
JavaScript通过HTML的class来获取HTML元素的方法总结
对于js来说,我想每一个刚接触它的人都应该会抱怨:为什么没有一个通过class来获取元素的方法.尽管现在高版本的浏览器已经支持getElementsByClassName()函数,但是对于低版本浏览器来说,还是无法兼容,在脱离其他库的时候,还是得自己封装一个方法. 方法一 function getByClass1(parent, cls){ var res = []; //存放匹配结果的数组 var ele = parent.getElementsByTagName('*'); for(var
-
JavaScript数组对象高阶函数reduce的妙用详解
目录 reduce 是 JavaScript 数组对象上的一个高阶函数 计算数组的平均数 求数组的最大值 求数组的最小值 数组去重 计算数组中每个元素出现的次数 实现数组分组 计算数组中连续递增数字的长度 计算对象数组的属性总和 将对象数组转换为键值对对象 计算数组中出现次数最多的元素 实现 Promise 串行执行 对象属性值求和 按属性对数组分组 扁平化数组 合并对象 reduce 是 JavaScript 数组对象上的一个高阶函数 它可以用来迭代数组中的所有元素,并返回一个单一的值. 其常
随机推荐
- iOS中关于UIWindow和statusbar的设置问题
- java 中JXL操作Excel实例详解
- Java Web开发之访问路径问题分析
- 简析Oracle数据库常见问题及解决方案
- Python验证码识别处理实例
- asp.net 身份验证(最简单篇)
- python处理PHP数组文本文件实例
- Android手机拍照或选取图库图片作为头像
- 网页的标准,IMG不支持onload标签怎么办
- IIS7完全攻略之失败请求跟踪配置
- PHP程序员玩转Linux系列 nginx初学者引导
- 基于Listener监听器生命周期(详解)
- C#中 const 和 readonly 的不同
- C#实现将数据导出到word或者Excel中的方法
- 浅谈 IPv6 基本技术原理和特点
- spring boot打jar包发布的方法
- ios可拖动按钮实例
- springboot openfeign从JSON文件读取数据问题
- 基于Python批量生成指定尺寸缩略图代码实例
- JavaScript实现文件下载并重命名代码实例