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是字符串数组的长度。因此,我们可以说复杂度取决于句子、字符串数组的大小以及单个字符串和句子的长度。
结论
我们已成功实现了在句子数组中查找字符串数组的确切个数的代码。该代码通过使用正则表达式和匹配函数来高效计算出数量。但是对于大输入,时间复杂度可能会影响性能。