中文亚洲精品无码_熟女乱子伦免费_人人超碰人人爱国产_亚洲熟妇女综合网

當前位置: 首頁 > news >正文

網(wǎng)站建設 云計算搜索數(shù)據(jù)

網(wǎng)站建設 云計算,搜索數(shù)據(jù),六安論壇網(wǎng)站,手機怎么解除禁止訪問網(wǎng)頁前言 本篇文章記錄下我在筆試過程中遇到的真實題目,供大家參考。 1、題目 系統(tǒng)給定一個數(shù)組,需要我們編寫一個函數(shù),該函數(shù)每次調(diào)用,隨機從該數(shù)組中獲取一個數(shù),且不能與上一次的取數(shù)相同。 2、思路解析 數(shù)組已經(jīng)有了…

前言

本篇文章記錄下我在筆試過程中遇到的真實題目,供大家參考。

1、題目

系統(tǒng)給定一個數(shù)組,需要我們編寫一個函數(shù),該函數(shù)每次調(diào)用,隨機從該數(shù)組中獲取一個數(shù),且不能與上一次的取數(shù)相同。

2、思路解析

數(shù)組已經(jīng)有了,我們首先想到的就是通過使用 Math.random() 方法來獲取一個隨機數(shù),而且這個隨機數(shù)的范圍要在數(shù)組的長度范圍內(nèi),這樣才能根據(jù)數(shù)組的下標獲取到對應的數(shù)組的值。

我們知道,Math.random() 方法是獲取 0 ~ 1 之間的隨機數(shù),包含 0 但不包含 1

如何才能獲取到 0 ~ 數(shù)組長度-1 區(qū)間范圍內(nèi)的隨機數(shù)呢?而且還需要是整數(shù)。

顯然,此時我們已經(jīng)有了獲取 0 ~ 1 之間的隨機數(shù),當這個隨機數(shù) 乘以 數(shù)組長度的時候,我們就可以獲取一個 0 ~ 數(shù)組長度之間的隨機數(shù)。

下一個方向是:保證每次獲取的隨機數(shù)都是整數(shù)

Math還提供了另外三個方法:Math.floor() 、 Math.ceil() 、Math.round()

  • Math.floor():向下取整,即小數(shù)部分直接舍棄。
  • Math.ceil():向上取整,即舍棄小數(shù)部分,同時整數(shù)部分 + 1
  • Math.round():四舍五入,返回四舍五入后的整數(shù)

針對于我們應該使用哪個方法:我們可以思考下:

Math.random() 方法產(chǎn)生的隨機數(shù),包含0,卻不包含1,這意味著,當我們再乘以數(shù)組長度的時候,得到的樹,永遠也不會包含數(shù)組長度的值。即:如果數(shù)組長度為 5 ,我們得到的隨機數(shù)永遠也不會為 5。

顯而易見,此時使用 Math.floor() 方法向下取整,我們獲取的隨機整數(shù),永遠都會是數(shù)組的下標。

重點:如何讓本次取到的數(shù),和上次不同

這里面有兩個不同的地方:

1. 當數(shù)組中的元素都是不同元素時

2. 當數(shù)組中有相同元素時

所以需要數(shù)組去重,校驗下,必須保證數(shù)組中起碼有三個不同的數(shù)字。

思路:定義一個變量:存放上次取的隨機數(shù),每次調(diào)用該方法時,進行對比,如果相等,則代表和上次取數(shù)一樣,此時再次調(diào)用該函數(shù)(遞歸),如果不等,則返回。

3. 代碼實例

const data = [1,2,3,4,5,6,1,2]let lastNum = null; // 用于存放上次的取數(shù)
const getRandomNum = (arr) => {                                                                                                                                                                                                                                        if(!arr.length) return;  // 封裝方法時的習慣性寫法,可不寫let newArr = (data) => [...new Set(data)] // 去重if(newArr(arr).length < 3) return;   // 確保數(shù)組的不同元素超過三個let random = Math.floor(Math.random() * arr.length) // 獲取 0~數(shù)組長度-1  的隨機數(shù)if(lastNum == arr[random]) {return getRandomNum(arr)}lastNum = arr[random]return arr[random]
}console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))
console.log(getRandomNum(data))

效果如下所示:

在這里插入圖片描述

http://www.risenshineclean.com/news/39462.html

相關文章:

  • wordpress企業(yè)網(wǎng)站制作鄭州seo優(yōu)化
  • 這幾年做啥網(wǎng)站致富推廣鏈接讓別人點擊
  • 門戶網(wǎng)站建設如何入賬銅陵seo
  • 美國十大購物網(wǎng)站免費注冊個人網(wǎng)站不花錢
  • 長安東莞網(wǎng)站設計百度掃一掃識別圖片在線
  • logo設計培訓寧波seo網(wǎng)絡推廣優(yōu)化價格
  • 網(wǎng)站網(wǎng)頁設計中怎么添加頁碼信息谷歌海外推廣
  • 網(wǎng)站方案策劃5118營銷大數(shù)據(jù)
  • wordpress屏蔽垃圾國外ip領碩網(wǎng)站seo優(yōu)化
  • 網(wǎng)站建設服務好公司排名google瀏覽器官網(wǎng)下載
  • 做公司網(wǎng)站計入什么會計科目seo用什么論壇引流
  • 網(wǎng)站實現(xiàn)seo基礎知識考試
  • 怎樣優(yōu)化網(wǎng)站排名靠前泰州百度關鍵詞優(yōu)化
  • 重慶市工程建設信息網(wǎng)2021優(yōu)化關鍵詞的公司
  • 哈爾濱地鐵愛建站seo查詢網(wǎng)站是什么
  • 企業(yè)網(wǎng)站優(yōu)化找哪家搜索排行
  • wordpress本地建站成人零基礎學電腦培訓班
  • 瀚欽科技網(wǎng)站建設谷歌搜索引擎免費
  • 北京建站設計寫一篇軟文1000字
  • 有沒有專門做航拍婚禮網(wǎng)站應用下載app排行榜
  • wordpress動漫博客模板東莞seo靠譜
  • 網(wǎng)頁制作基礎教程第二版seo查詢 站長之家
  • 信譽好的東莞網(wǎng)站建設網(wǎng)站收錄查詢代碼
  • 做網(wǎng)站制作的摘要網(wǎng)店推廣策劃書
  • 視頻鏈接生成網(wǎng)站國通快速建站
  • 什么類型的產(chǎn)品可以做網(wǎng)站出口贛州seo外包
  • 國內(nèi)適合個人做外貿(mào)的網(wǎng)站有哪些app001推廣平臺官網(wǎng)
  • 寧夏干部網(wǎng)絡教育培訓學院小紅書seo排名優(yōu)化
  • 公司網(wǎng)站最新版今日剛剛發(fā)生新聞事件
  • 平面設計平臺接單win10最強性能優(yōu)化設置