JavaScript數(shù)組對(duì)象實(shí)現(xiàn)增加一個(gè)返回隨機(jī)元素的方法
本文實(shí)例講述了JavaScript數(shù)組對(duì)象實(shí)現(xiàn)增加一個(gè)返回隨機(jī)元素的方法。分享給大家供大家參考。具體如下:
核心特性:
概率隨機(jī)、順序隨機(jī)、隨機(jī)冒泡
本方法 來(lái)自個(gè)人手寫 JavaScript 的實(shí)踐,只涉及 JavaScript 1.5(ECMAscript 3 國(guó)際標(biāo)準(zhǔn))語(yǔ)言本身,在所有 JS 引擎實(shí)現(xiàn)中通用~
為Array對(duì)象新增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); }; })();
使用示例:
// 【概率隨機(jī)】 // // 元素的返回 完全隨機(jī),出現(xiàn)幾率不定,有限次調(diào)用不保證能返回所有元素 var iElement = iArray.random(); // 【順序隨機(jī)】 // // 元素的返回 有周期性,在每個(gè)周期內(nèi),元素都出現(xiàn)一次,但順序不定 var iElement = iArray.random(true); // 【隨機(jī)冒泡】 // // 每次調(diào)用都從原數(shù)組中隨機(jī)取出一個(gè)元素返回(原數(shù)組 就地改變) var iElement = iArray.random(true, true);
希望本文所述對(duì)大家的javascript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript實(shí)現(xiàn)系統(tǒng)防掛機(jī)(無(wú)操作彈窗)的示例詳解
在一些學(xué)習(xí)系統(tǒng),或者考試系統(tǒng)中。一旦出現(xiàn)長(zhǎng)時(shí)間未操作,就會(huì)判定這個(gè)人不在場(chǎng)。所以就會(huì)進(jìn)行退出系統(tǒng),處于對(duì)安全和系統(tǒng)負(fù)擔(dān)還有業(yè)務(wù)的需求。本文就來(lái)用JavaScript做一個(gè)系統(tǒng)防掛機(jī)功能,需要的可以參考一下2023-01-01JavaScript實(shí)現(xiàn)橫向滑出的多級(jí)菜單效果
這篇文章主要介紹了JavaScript實(shí)現(xiàn)橫向滑出的多級(jí)菜單效果,涉及JavaScript數(shù)學(xué)運(yùn)算及頁(yè)面元素樣式動(dòng)態(tài)變換的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-10-10移動(dòng)Web中圖片自適應(yīng)的兩種JavaScript解決方法
這篇文章主要介紹了移動(dòng)Web中圖片自適應(yīng)的兩種JavaScript解決方法,本文針對(duì)手機(jī)站點(diǎn)中的圖片自適應(yīng)問(wèn)題,給出了圖集解決方法和單篇文章的解決方法,需要的朋友可以參考下2015-06-06淺談高大上的微信小程序中渲染html內(nèi)容—技術(shù)分享
大部分Web應(yīng)用的富文本內(nèi)容都是以HTML字符串的形式存儲(chǔ)的,那么在微信小程序中,應(yīng)當(dāng)如何渲染這部分內(nèi)容呢?感興趣的小伙伴們可以參考一下2018-10-10JavaScript中常見(jiàn)的字符串操作函數(shù)及用法匯總
這篇文章主要介紹了JavaScript中常見(jiàn)的字符串操作函數(shù)及用法,實(shí)例匯總了javascript常見(jiàn)的字符串轉(zhuǎn)換、分割、查詢、替換等技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-05-0510 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)
本文是小編給大家收藏的JavaScript 中頻度最高的 10 種錯(cuò)誤,我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生。需要的朋友參考下2018-02-02