假设你被赋予了一长串的字母,看起来像是一个混乱的单词,你被要求解开它,你会如何解开这个词?今天,我将向您展示如何构建一个函数,只要该单词存在于我们的字典中,它将帮助您解密任何单词。
开始
我们需要通过安装一个非常好的字典来设置我们的项目,该字典将用于过滤单词。
在本地服务器上,
安装 npm 包“英语单词数组”
构建我们的功能
现在我们已经安装了字典,我们需要构建一个函数来帮助我们利用字典中的单词来解密单词。
此函数将只有一个参数,即要解密的单词。
导入我们的词典
现在我们需要将字典导入到函数中,以帮助我们根据逻辑过滤单词。
如果开发环境中不允许使用该语句,则必须导入字典并将其作为模块使用。require
通过字典过滤
这是我们函数中最重要的部分。在本节中,我将编写非常简单的逻辑来过滤字典并返回我们正在寻找的单词。
我将在字典上使用,第一步是检查我们尝试解密的单词的长度是否等于字典中当前项目的长度。这将为我们节省大量的时间和内存,并使我们的逻辑更加整洁。Array.filter()
处理重复发生
因为我不知道你试图解开的词;
我将检索字典中的当前项目
使用方法将其转换为数组split()
遍历数组
然后将每个字母的重复出现次数存储在变量中reOccurence1
我将对提供的加扰单词执行相同的操作,但在不同的变量中。reOccurence2
分解它数。
只需查看对象,您就会注意到它们是相等的,这意味着我们找到了一个与加扰字母匹配的单词。
解开单词
在了解了如何存储和处理重复发生之后,我们现在必须遍历第一个对象并检查字母的重复发生次数是否与另一个对象相同。
为了让你理解上面的代码,举个例子,字典中有一个名字叫“simon”的单词,你正试图解开这个词“mnios”。
如果我们的函数应该执行到重复出现部分,我们将恰好有这两个对象,其中包含每个字母和它们重复的次数。
如果它们是相同的,那么毫无疑问,字典中的当前项目就是我们正在寻找的单词。
我将创建一个变量作为我们的计数器。在循环遍历对象时找到的每个匹配项上,此计数器都会增加。
现在,如果计数器等于数组中的键数,我们将返回字典中的当前项,因为这是我们正在寻找的单词。
这是完整的代码
测试我们的功能
假设我有这些字母“izrbera”,我想解开它。这就是我调用函数的方式。
这是结果
奇怪
火盆
此函数返回 包含与加扰字母匹配的单词的 ,如果未找到单词,则返回空。array array