最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Javascript從數(shù)組中隨機(jī)取出不同元素的兩種方法

 更新時間:2016年09月22日 14:45:35   作者:garfieldzf  
這篇文章給大家分享了兩種Javascript從數(shù)組中隨機(jī)取出不同元素的方法,大家可以都學(xué)習(xí)學(xué)習(xí),這樣更能有助于大家的學(xué)習(xí)和理解,下面來一起看看吧

一、常規(guī)算法

第一種方法較常規(guī),經(jīng)測試有bug,數(shù)據(jù)量大以后隨機(jī)幾次返回的對象直接是function而不是object。 當(dāng)然簡單數(shù)據(jù)類型應(yīng)該沒有這個問題。

示例代碼

/**
     從數(shù)組中隨機(jī)抽取數(shù)據(jù) 2016-09-09
   **/
   function getArrItem(arr, num) {
     var temp_array = new Array();
     for (var index in arr) {
       temp_array.push(arr[index]);
     }
     var return_array = new Array();
     for (var i = 0; i < num; i++) {
       if (temp_array.length > 0) {
         var arrIndex = Math.floor(Math.random() * temp_array.length);
         return_array[i] = temp_array[arrIndex];
         temp_array.splice(arrIndex, 1);
       } else {
         break;
       }
     }
     return return_array;
   }

二、洗牌算法

第二種是使用洗牌算法,親測有效。

示例代碼

/**
      隨機(jī)化原數(shù)組
    **/
    function shuffle(array) {
      var m = array.length,
        t, i;
      // 如果還剩有元素…
      while (m) {
        // 隨機(jī)選取一個元素…
        i = Math.floor(Math.random() * m--);
        // 與當(dāng)前元素進(jìn)行交換
        t = array[m];
        array[m] = array[i];
        array[i] = t;
      }
      return array;
    }
 
//用法
var message = shuffle(totalArr);
message = message.slice(0, 3);

以上就是為大家總結(jié)的兩種Javascript從數(shù)組中隨機(jī)取出不同元素的方法,希望這篇文章能對大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

  • 利用vscode調(diào)試編譯后的js代碼詳解

    利用vscode調(diào)試編譯后的js代碼詳解

    看了網(wǎng)上好多在vscode上調(diào)試javascript的代碼,總是出現(xiàn)問題,索性自己寫一個,下面這篇文章主要給大家介紹了關(guān)于如何利用vscode調(diào)試編譯后的js代碼的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們一起來看看吧
    2018-05-05
  • JavaScript操作CSS的高級用法分享

    JavaScript操作CSS的高級用法分享

    Web開發(fā)中,JavaScript與CSS的結(jié)合用于增強(qiáng)網(wǎng)頁的交互性和用戶體驗(yàn),本文將探索幾種高級方法來使用JavaScript操作CSS,并分別通過代碼示例進(jìn)行講解,希望對大家有所幫助
    2023-12-12
  • 微信小程序?qū)崿F(xiàn)滑動側(cè)邊欄

    微信小程序?qū)崿F(xiàn)滑動側(cè)邊欄

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)滑動側(cè)邊欄,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • JS實(shí)現(xiàn)的自定義顯示加載等待圖片插件(loading.gif)

    JS實(shí)現(xiàn)的自定義顯示加載等待圖片插件(loading.gif)

    這篇文章主要介紹了JS實(shí)現(xiàn)的自定義顯示加載等待圖片插件,涉及javascript針對圖片的動態(tài)加載實(shí)現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2016-06-06
  • javascript中如何處理引號編碼&#034;

    javascript中如何處理引號編碼&#034;

    本文為大家介紹下javascript中如何處理引號編碼,具體如下,感興趣的朋友可以參考下
    2013-08-08
  • 查詢綁定數(shù)據(jù)島的表格中的文本并修改顯示方式的js代碼

    查詢綁定數(shù)據(jù)島的表格中的文本并修改顯示方式的js代碼

    查詢綁定數(shù)據(jù)島的表格中的文本并修改顯示方式的js代碼
    2009-12-12
  • JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能【案例】

    JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能【案例】

    這篇文章主要介紹了JS實(shí)現(xiàn)點(diǎn)擊li標(biāo)簽彈出對應(yīng)的索引功能,結(jié)合具體實(shí)例形式分析了javascript事件響應(yīng)、元素遍歷等相關(guān)操作技巧,需要的朋友可以參考下
    2019-02-02
  • Nginx上傳文件全部緩存解決方案

    Nginx上傳文件全部緩存解決方案

    Nginx默認(rèn)會對上傳的文件先在本地進(jìn)行緩存,再轉(zhuǎn)發(fā)到應(yīng)用服務(wù)器。請問怎么禁止掉這個緩存,讓Nginx只轉(zhuǎn)發(fā)而不緩存文件?本文給大家詳細(xì)介紹Nginx上傳文件全部緩存解決方案,有需要的朋友來參考下
    2015-08-08
  • js for循環(huán)倒序輸出數(shù)組元素的實(shí)例

    js for循環(huán)倒序輸出數(shù)組元素的實(shí)例

    下面小編就為大家?guī)硪黄猨s for循環(huán)倒序輸出數(shù)組元素的實(shí)例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • 動態(tài)加載圖片路徑 保持JavaScript控件的相對獨(dú)立性

    動態(tài)加載圖片路徑 保持JavaScript控件的相對獨(dú)立性

    根據(jù)新界面的要求,需要一部分圖片來增強(qiáng)日期控件的美觀性??紤]到既要實(shí)現(xiàn)加載圖表的目標(biāo),又要保持控件的獨(dú)立性以便將來的移植。
    2010-09-09

最新評論

武功县| 平阳县| 项城市| 莎车县| 长岭县| 平湖市| 察哈| 商南县| 石景山区| 紫金县| 布拖县| 垣曲县| 工布江达县| 全州县| 清苑县| 图木舒克市| 麻城市| 江永县| 西城区| 竹山县| 鄂托克旗| 南投县| 杭州市| 比如县| 贡山| 新绛县| 余姚市| 宝山区| 东兴市| 灵台县| 集贤县| 武定县| 宝鸡市| 论坛| 富裕县| 仁怀市| 大荔县| 苗栗县| 丰原市| 贵定县| 黔西县|