亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如果數據庫中已存在用戶,如何使用 Math.random() 將其排除在隨機之外

如果數據庫中已存在用戶,如何使用 Math.random() 將其排除在隨機之外

慕田峪9158850 2022-06-09 11:28:20
作為學校項目的一部分,我們正在創建一個應用程序,如果他們玩相同的游戲,用戶可以在其中相互匹配。當您單擊 matchButton 時,一個玩您選擇的游戲的隨機用戶將顯示在頁面上。您可以選擇喜歡該用戶或繼續點擊 matchButton 以隨機化另一個用戶?,F在我們要確保您已經喜歡的用戶不會被隨機化,因此不會在頁面上呈現。對于每個用戶,被點贊的用戶都保存在數據庫中名為 match 的數組中。玩相同游戲的用戶保存在一個名為 numOfMatches 的數組中。因此,我們使用 numOfMatches 來隨機化用戶。我想我必須遍歷數據庫中的 numOfMatches 和匹配數組,以查看 numOfMatches 中的用戶是否已經在數據庫中。如果是這樣,我需要從 numOfMatches 中刪除用戶,以便它不包含在 Math.random 代碼中。我在這篇文章的最后一個函數中嘗試使用此代碼,但在理解如何訪問用戶對象中匹配數組中的元素以及如何使用拼接(以及我應該將代碼放置在哪個函數中)時遇到了問題我們使用回調,我認為這有點棘手):for(let i = 0; i < numOfMatches.length; i++) {    for(let j = 0; j < users[j].match.length; j++) {        if(numOfMatches[i] === users[j].match) {          let position = numOfMatches.indexOf(randomUser)             numOfMatches.splice(position, 1)        }    }}我非常感謝您的想法和建議。來自數據庫的樣本:{   "username":"bobox",   "email":"[email protected]",   "password":"test234",   "gender":"Man",   "age":"17",   "city":"J?nk?ping",   "games":"Battlefield V",   "usernameDiscord":"bigbox",   "usernameSteam":"bigbox",   "usernameOrigin":"bobox",   "match":[      "carro",      "arooma",      "gamer_girl"   ],   "_id":"WRa86pRsVex6NBe2"}
查看完整描述

1 回答

?
紅糖糍粑

TA貢獻1815條經驗 獲得超6個贊

這是一個簡單的例子。


const candidate = [1,2,3,4,5,6,7,8,9,0]

const exclude = [1,3,7]


let target = candidate.filter(x=>!exclude.includes(x))

console.log(target)


console.log(target[Math.floor(Math.random() * target.length)])


查看完整回答
反對 回復 2022-06-09
  • 1 回答
  • 0 關注
  • 173 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號