假設你被賦予了一長串的字母,看起來像是一個混亂的單詞,你被要求解開它,你會如何解開這個詞?今天,我將向您展示如何構建一個函數(shù),只要該單詞存在于我們的字典中,它將幫助您解密任何單詞。
開始
我們需要通過安裝一個非常好的字典來設置我們的項目,該字典將用于過濾單詞。
在本地服務器上,
安裝 npm 包“英語單詞數(shù)組”
構建我們的功能
現(xiàn)在我們已經(jīng)安裝了字典,我們需要構建一個函數(shù)來幫助我們利用字典中的單詞來解密單詞。
此函數(shù)將只有一個參數(shù),即要解密的單詞。
導入我們的詞典
現(xiàn)在我們需要將字典導入到函數(shù)中,以幫助我們根據(jù)邏輯過濾單詞。
如果開發(fā)環(huán)境中不允許使用該語句,則必須導入字典并將其作為模塊使用。require
通過字典過濾
這是我們函數(shù)中最重要的部分。在本節(jié)中,我將編寫非常簡單的邏輯來過濾字典并返回我們正在尋找的單詞。
我將在字典上使用,第一步是檢查我們嘗試解密的單詞的長度是否等于字典中當前項目的長度。這將為我們節(jié)省大量的時間和內(nèi)存,并使我們的邏輯更加整潔。Array.filter()
處理重復發(fā)生
因為我不知道你試圖解開的詞;
我將檢索字典中的當前項目
使用方法將其轉換為數(shù)組split()
遍歷數(shù)組
然后將每個字母的重復出現(xiàn)次數(shù)存儲在變量中reOccurence1
我將對提供的加擾單詞執(zhí)行相同的操作,但在不同的變量中。reOccurence2
分解它數(shù)。
只需查看對象,您就會注意到它們是相等的,這意味著我們找到了一個與加擾字母匹配的單詞。
解開單詞
在了解了如何存儲和處理重復發(fā)生之后,我們現(xiàn)在必須遍歷第一個對象并檢查字母的重復發(fā)生次數(shù)是否與另一個對象相同。
為了讓你理解上面的代碼,舉個例子,字典中有一個名字叫“simon”的單詞,你正試圖解開這個詞“mnios”。
如果我們的函數(shù)應該執(zhí)行到重復出現(xiàn)部分,我們將恰好有這兩個對象,其中包含每個字母和它們重復的次數(shù)。
如果它們是相同的,那么毫無疑問,字典中的當前項目就是我們正在尋找的單詞。
我將創(chuàng)建一個變量作為我們的計數(shù)器。在循環(huán)遍歷對象時找到的每個匹配項上,此計數(shù)器都會增加。
現(xiàn)在,如果計數(shù)器等于數(shù)組中的鍵數(shù),我們將返回字典中的當前項,因為這是我們正在尋找的單詞。
這是完整的代碼
測試我們的功能
假設我有這些字母“izrbera”,我想解開它。這就是我調(diào)用函數(shù)的方式。
這是結果
奇怪
火盆
此函數(shù)返回 包含與加擾字母匹配的單詞的 ,如果未找到單詞,則返回空。array array