Javascript数组对象实现添加了一个返回随机元素的方法

本文演示了在Javascript数组对象实现中添加返回随机元素的方法,供大家参考:

核心特征:

随机随机序列随机气泡

这种方法来自于个人手写Javascript的实践。它不仅涉及到Javascript 1.5(ECMAscript 3标准)语言本身,和所有的JS引擎的实现具有普遍性。

为数组对象添加随机方法:


(函数(){())
功能random_sn(iarray){
返回math.floor(Math.random()* iarray。长度);
}
功能probability_random(iarray){
无功random_int;
如果(iarray.random_sn =未定义)
iarray.random_sn = - 1;
做random_int = random_sn(iarray);
而(random_int = iarray。random_sn)
iarray.random_sn = random_int;
返回random_int iarray { };
}
功能sequence_random(iarray){
返回iarray.splice(random_sn(iarray),1){ 0 };
}
array.prototype.random =功能(模式,POP){
如果(!模式)
返回probability_random(本);
如果(!POP){
如果(!(this.random_queue这。random_queue。长度))
this.random_queue = {} .concat(本);
返回sequence_random(这个。random_queue);
}
返回sequence_random(本);
};
});




使用的例子:


{ / /随机}

返回完全随机元素,不确定性的概率,有限的调用不能保证返回所有元素。
VaR IElement = iarray.random();
{随机序列

在每个周期中的周期性返回元素,序列的元素,但没有设置。
VaR IElement = iarray.random(真);
{随机气泡

每一个调用都是从原始数组中随机抽取的,返回一个元素(带有一个局部变化数组)。
VaR IElement = iarray.random(真的,真的);




希望本文能对大家的javascript程序设计有所帮助。