JavaScript 查找数组句子中字符串数组的确切个体计数

JavaScript 查找数组句子中字符串数组的确切个体计数

在给定的问题陈述中,我们需要使用JavaScript的功能来查找数组句子中字符串数组的确切个体计数。因此,我们将使用for循环来获取所需的结果。

理解问题

目前的问题是使用JavaScript查找数组句子中每个字符串的确切个体计数。我们将获得一个字符串数组和一个句子数组。因此,我们需要找出每个字符串在给定句子中出现的次数。例如:

Suppose we an array of strings as -
Strings = [“car”, “cycle”, “bike”] and
Sentence = ['I have a car and a bike.''];

So if we compare and check for the strings in the sentence we will have 
{ car: 1, cycle: 0, bike: 1 }

在上面的输出示例中,我们可以看到在给定的句子中,对于“car”有1个计数,对于“cycle”没有计数,对于“bike”有1个计数。

给定问题的逻辑

为了解决给定的任务,我们将采用两步方法。首先,我们将对字符串数组中的每个字符串初始化为零。然后,我们将遍历句子数组中的每个句子,并计算句子中每个字符串的出现次数。最后,我们将得到每个字符串的个别计数。

为了在句子中匹配字符串,我们将使用正则表达式和单词边界。这是我们可以将字符串作为整个单词计数,而不是作为其他单词的一部分的方法。然后,我们将使用match方法查找句子中字符串的所有出现次数。最后,我们将得到包含每个字符串的个别计数的对象,其中键是字符串本身,而值是计数。

步骤

步骤1 :由于我们要找出给定句子中字符串的计数,我们将通过定义一个名为countStrings的函数来开始程序。此函数将有两个参数:第一个参数是字符串数组strings,第二个参数是句子数组sentences。

步骤2 :在声明完成给定任务的函数之后,我们将定义一个名为counts的空对象。这个对象将存储给定句子中每个字符串的计数。

步骤3 :现在我们需要遍历给定的字符串数组。因此,我们将使用counts变量为每个字符串设置初始计数为零。

步骤4 :在遍历字符串后,现在是遍历给定的句子数组的时候了。对于每个句子,我们将遍历字符串数组中的每个字符串。在这个迭代过程中,我们将使用单词边界创建一个正则表达式来匹配确切的单词。同时,我们将使用match方法在给定句子中找到字符串的所有出现次数。

步骤5 :由于我们已经声明了一个正则表达式和match方法,下一个任务是验证匹配结果。如果我们找到了匹配项,则将计数保存在计数变量中;否则,将计数值设置为0。

步骤6 :在上述步骤之后,我们将通过将计数添加到现有计数中来增加counts对象中当前字符串的计数,并最后将counts对象返回以显示句子中给定字符串的计数。

示例

// Create a function to count the strings
function countStrings(strs, sentences) {
   const counts = {};

   for (let i = 0; i < strs.length; i++) {
      counts[strs[i]] = 0;
   }

   for (let i = 0; i < sentences.length; i++) {
      const sentence = sentences[i];
      for (let j = 0; j < strs.length; j++) {
         const string = strs[j];
         // Create a regular expression for word matching
         const regex = new RegExp('\b' + string + '\b', 'gi');
         const matches = sentence.match(regex);
         const count = matches ? matches.length : 0;
         counts[string] += count;
      }
   }

   return counts;
}

const strs = ['apple', 'banana', 'orange'];
const sentences = ['I have an apple and a banana.', 'She likes orange but i like banana.'];
const result = countStrings(strs, sentences);
console.log(result);

输出

{ apple: 0, banana: 0, orange: 0 }

复杂度

该代码的时间复杂度为O(k * n * p),其中k是句子数组的大小,n是字符串数组的大小,p是句子中字符的总数。代码的空间复杂度为O(n),其中n是字符串数组的长度。因此,我们可以说复杂度取决于句子、字符串数组的大小以及单个字符串和句子的长度。

结论

我们已成功实现了在句子数组中查找字符串数组的确切个数的代码。该代码通过使用正则表达式和匹配函数来高效计算出数量。但是对于大输入,时间复杂度可能会影响性能。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程