欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

JavaScript數(shù)組對(duì)象實(shí)現(xiàn)增加一個(gè)返回隨機(jī)元素的方法

 更新時(shí)間:2015年07月27日 17:33:32   作者:南漂一卒  
這篇文章主要介紹了JavaScript數(shù)組對(duì)象實(shí)現(xiàn)增加一個(gè)返回隨機(jī)元素的方法,涉及javascript針對(duì)數(shù)組及隨機(jī)數(shù)的相關(guān)操作技巧,需要的朋友可以參考下

本文實(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ú)操作彈窗)的示例詳解

    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-01
  • js 調(diào)用百度分享功能

    js 調(diào)用百度分享功能

    本文主要介紹了js調(diào)用百度分享功能的方法,具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-02-02
  • JS獲取并處理php數(shù)組的方法實(shí)例分析

    JS獲取并處理php數(shù)組的方法實(shí)例分析

    這篇文章主要介紹了JS獲取并處理php數(shù)組的方法,結(jié)合實(shí)例形式分析了php針對(duì)數(shù)組的創(chuàng)建、轉(zhuǎn)換以及js處理數(shù)組的接收、遍歷、轉(zhuǎn)換等相關(guān)操作技巧,需要的朋友可以參考下
    2018-09-09
  • JavaScript實(shí)現(xiàn)橫向滑出的多級(jí)菜單效果

    JavaScript實(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解決方法

    這篇文章主要介紹了移動(dòng)Web中圖片自適應(yīng)的兩種JavaScript解決方法,本文針對(duì)手機(jī)站點(diǎn)中的圖片自適應(yīng)問(wèn)題,給出了圖集解決方法和單篇文章的解決方法,需要的朋友可以參考下
    2015-06-06
  • 淺談高大上的微信小程序中渲染html內(nèi)容—技術(shù)分享

    淺談高大上的微信小程序中渲染html內(nèi)容—技術(shù)分享

    大部分Web應(yīng)用的富文本內(nèi)容都是以HTML字符串的形式存儲(chǔ)的,那么在微信小程序中,應(yīng)當(dāng)如何渲染這部分內(nèi)容呢?感興趣的小伙伴們可以參考一下
    2018-10-10
  • JS實(shí)現(xiàn)文本比較差異的示例代碼

    JS實(shí)現(xiàn)文本比較差異的示例代碼

    內(nèi)部系統(tǒng)上線了一個(gè)發(fā)版記錄發(fā)版內(nèi)容的功能,維護(hù)發(fā)版記錄的同事提出一個(gè)可以展示前后文本差異的優(yōu)化需求,?使的每次變更前可以確認(rèn)新增了哪些,或者刪除了哪些內(nèi)容,所以本文給大家介紹了基于JS實(shí)現(xiàn)文本比較差異,需要的朋友可以參考下
    2023-12-12
  • JavaScript中常見(jiàn)的字符串操作函數(shù)及用法匯總

    JavaScript中常見(jiàn)的字符串操作函數(shù)及用法匯總

    這篇文章主要介紹了JavaScript中常見(jiàn)的字符串操作函數(shù)及用法,實(shí)例匯總了javascript常見(jiàn)的字符串轉(zhuǎn)換、分割、查詢、替換等技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下
    2015-05-05
  • 10 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)

    10 種最常見(jiàn)的 Javascript 錯(cuò)誤(頻率最高)

    本文是小編給大家收藏的JavaScript 中頻度最高的 10 種錯(cuò)誤,我們會(huì)告訴你什么原因?qū)е铝诉@些錯(cuò)誤,以及如何防止這些錯(cuò)誤發(fā)生。需要的朋友參考下
    2018-02-02
  • Javascript加載速度慢的解決方案

    Javascript加載速度慢的解決方案

    在網(wǎng)站里面會(huì)加載一些js代碼,統(tǒng)計(jì)啊,百度廣告等等,結(jié)果弄得頁(yè)面加載速度很慢,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下
    2014-03-03

最新評(píng)論