成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

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

everfly / 866人閱讀

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

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

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

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

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

解析該如何取題:

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

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

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

方法如下:

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

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

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

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/86060.html

相關(guān)文章

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

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

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

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

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

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

    jimhs 評論0 收藏0

發(fā)表評論

0條評論

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