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

資訊專欄INFORMATION COLUMN

隨機(jī)獲取數(shù)組中的幾項(xiàng)數(shù)據(jù)

everfly / 864人閱讀

摘要:所以,需求就簡(jiǎn)化成在這個(gè)長度的數(shù)組里,隨機(jī)獲取其中項(xiàng)。本項(xiàng)目中,我的數(shù)組中都是題目對(duì)象,包含了題目標(biāo)題答案列表正確答案每道題目的失敗提示語。

之前接到的一個(gè)項(xiàng)目,需求是這樣:

平臺(tái):移動(dòng)端HTML5,全部前端完成

實(shí)現(xiàn)功能:答題闖關(guān),答對(duì)一道題進(jìn)入下一道,題目隨機(jī)從題庫中選取。

規(guī)則:累計(jì)答對(duì)9道題則闖關(guān)成功,但是累計(jì)答錯(cuò)4道題則闖關(guān)失敗,游戲終止。

解析該如何取題:

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

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

所以,需求就簡(jiǎn)化成: 在這個(gè)長度50的數(shù)組里,隨機(jī)獲取其中12項(xiàng)。

方法如下:

function getRandomArray(arr,num){
    //新建一個(gè)數(shù)組,將傳入的數(shù)組復(fù)制過來,用于運(yùn)算,而不要直接操作傳入的數(shù)組;
    var temp_array = new Array();
    for (var index in arr) {
        temp_array.push(arr[index]);
    }
    //取出的數(shù)值項(xiàng),保存在此數(shù)組
    var return_array = new Array();
    for (var i = 0; i0) {
            //在數(shù)組中產(chǎn)生一個(gè)隨機(jī)索引
            var arrIndex = Math.floor(Math.random()*temp_array.length);
            //將此隨機(jī)索引的對(duì)應(yīng)的數(shù)組元素值復(fù)制出來
            return_array[i] = temp_array[arrIndex];
            //然后刪掉此索引的數(shù)組元素,這時(shí)候temp_array變?yōu)樾碌臄?shù)組
            temp_array.splice(arrIndex, 1);
        } else {
            //數(shù)組中數(shù)據(jù)項(xiàng)取完后,退出循環(huán),比如數(shù)組本來只有10項(xiàng),但要求取出20項(xiàng).
            break;
        }
    }
    return return_array;
}

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/86060.html

相關(guān)文章

  • Javascript刪除數(shù)組中某一項(xiàng)或幾項(xiàng)的幾種方法

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

    simpleapples 評(píng)論0 收藏0
  • 深入了解JavaScript 中的For循環(huán)之詳解

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

    linkin 評(píng)論0 收藏0
  • 深入了解JavaScript 中的For循環(huán)之詳解

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

    jimhs 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<