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程序设计有所帮助。
相关推荐
-
js对ajax返回数组的处理介绍
引言:ajax异步传输,可以传输字符串,但是数组这样的数据,就不太好传递了,这个时候怎么办呢? 答案是可以通过json来处理,后台将数据数据进行json编码! 然后客户端,通过js来进行解析. 这样问题就解决了!json是一种很好的数据格式! 我做的是异步判断某堂课是否处于上课状态,会从后台接口中获取数组数据!共四堂课, 代码如下: 复制代码 代码如下: function ajaxcheckedlessonsAction(){ //3583 语文 8班 //1500
-
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数组返回去重后数据的方法解析
话不多说,请看代码: 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
-
用js实现随机返回数组的一个元素
复制代码 代码如下: <SCRIPT LANGUAGE="JavaScript"> <!-- var test = ["aa","bb","cc","dd","ee"]; document.write(test[Math.floor(Math.random()*test.length)]); setInterval("location.reload()&quo
-
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 数组对象上的一个高阶函数 它可以用来迭代数组中的所有元素,并返回一个单一的值. 其常
随机推荐
- 如何利用Golang写出高并发代码详解
- 理解Java当中的回调机制(翻译)
- Docker搭建前端Java的开发环境详解
- Ubuntu搭建Java开发环境笔记
- 使用Java8实现观察者模式的方法(上)
- JS 组件系列之Bootstrap Table 冻结列功能IE浏览器兼容性问题解决方案
- 微信公众平台开发教程(五)详解自定义菜单
- 12306验证码破解思路分享
- Android GridView实现滚动到指定位置的方法
- android实现App活动定时自动跳转效果
- python3中set(集合)的语法总结分享
- jquery增加时编辑jqGrid(实例代码)
- Python函数式编程指南(三):迭代器详解
- jQuery实现点击某个div打开层,点击其他div关闭层实例分析(阻止冒泡)
- 为jQuery-easyui的tab组件添加右键菜单功能的简单实例
- iis中flv视频无法播放的处理方法(iis或虚拟主机管理系统)
- 虚拟服务器实现方法(动态均衡)
- 设计简单的Android图片加载框架
- quartz实现定时功能实例详解(servlet定时器配置方法)
- 魔法时代为您提供80M免费空间服务
