国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

隨機獲取數組中的幾項數據

everfly / 857人閱讀

摘要:所以,需求就簡化成在這個長度的數組里,隨機獲取其中項。本項目中,我的數組中都是題目對象,包含了題目標題答案列表正確答案每道題目的失敗提示語。

之前接到的一個項目,需求是這樣:

平臺:移動端HTML5,全部前端完成

實現功能:答題闖關,答對一道題進入下一道,題目隨機從題庫中選取。

規則:累計答對9道題則闖關成功,但是累計答錯4道題則闖關失敗,游戲終止。

解析該如何取題:

假如題庫中有50道題,再取題的時候是不用沒答完一道題,隨機取下一道題的。如果這樣的話效率就比較低,邏輯還復雜。

所以最好的方法是,計算每次游戲需要的最大題目數就好,這里可以計算一下,無論用戶答對多少,答錯多少,每次最多只會使用12道題目。

所以,需求就簡化成: 在這個長度50的數組里,隨機獲取其中12項。

方法如下:

function getRandomArray(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; i0) {
            //在數組中產生一個隨機索引
            var arrIndex = Math.floor(Math.random()*temp_array.length);
            //將此隨機索引的對應的數組元素值復制出來
            return_array[i] = temp_array[arrIndex];
            //然后刪掉此索引的數組元素,這時候temp_array變為新的數組
            temp_array.splice(arrIndex, 1);
        } else {
            //數組中數據項取完后,退出循環,比如數組本來只有10項,但要求取出20項.
            break;
        }
    }
    return return_array;
}

代碼注釋特別清晰,很容易明白,代碼不是我寫的,出處我找不到了,覺得寫得很好學習一下。
本項目中,我的數組中都是題目對象,包含了題目標題、答案列表、正確答案、每道題目的失敗提示語。這樣就很容易處理需求中的邏輯了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/86060.html

相關文章

  • Javascript刪除數組中某一項或幾項的幾種方法

    1. splice Js中的splice方法 splice(index,len,[item])??? 注釋:該方法會改變原始數組。 splice有3個參數,它也可以用來 替換/刪除/添加 數組內某一個或者幾個值 index:數組開始下標????????len: 替換/刪除的長度?????? item:替換的值,刪除操作的話 item為空 如: arr = [a,b,c,d] 1.1 刪除 刪除 ...

    simpleapples 評論0 收藏0
  • 深入了解JavaScript 中的For循環之詳解

    摘要:將品牌的標價全部加蘇南的專欄交流公眾號不會對空數組進行檢測。方法用于調用數組的每個元素,并將元素傳遞給回調函數。 showImg(https://segmentfault.com/img/bVblSSO?w=1008&h=298); 前言: ? 今天我想分享一個有關于循環篩選的知識點,也許是前端小白的你首先想到的是用for循環做篩選,但我這種小菜鳥想到的就是map(工作中很喜歡...

    linkin 評論0 收藏0
  • 深入了解JavaScript 中的For循環之詳解

    摘要:將品牌的標價全部加蘇南的專欄交流公眾號不會對空數組進行檢測。方法用于調用數組的每個元素,并將元素傳遞給回調函數。 showImg(https://segmentfault.com/img/bVblSSO?w=1008&h=298); 前言: ? 今天我想分享一個有關于循環篩選的知識點,也許是前端小白的你首先想到的是用for循環做篩選,但我這種小菜鳥想到的就是map(工作中很喜歡...

    jimhs 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<