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