在 JavaScript 中查找句子数组中字符串数组的准确个体计数
在给定的问题陈述中,我们必须借助 Javascript 功能在句子数组中找到字符串数组的准确个体计数。因此,我们将使用 for 循环进行求解以获得所需的结果。
理解问题
当前的问题是借助 Javascript 在句子数组中找到每个字符串的准确个体计数。我们将获得一个数组或字符串和一个句子数组。因此,我们必须找出每个字符串在给定句子中出现的次数。例如:
假设我们有一个字符串数组,如下所示 -
Strings = ["car", "cycle", "bike"] 和
Sentence = ['I have a car and a bike.''];
因此,如果我们比较并检查句子中的字符串,我们将得到
{ car: 1, cycle: 0, bike: 1 }
在上面的输出示例中,我们可以看到在检查给定的句子后,car 的计数为 1,cycle 的计数为 0,bike 的计数为 1。
给定问题的逻辑
为了解决给定的任务,我们将采用两步方法。首先,我们将初始化字符串数组中每个字符串的计数为零。之后,我们将遍历句子数组中的每个句子,并计算句子中每个字符串的出现次数。最后,我们将得到每个字符串的单独计数。
为了匹配句子中的字符串,我们将使用带有单词边界的正则表达式。这是我们可以将字符串作为整个单词而不是另一个单词的一部分进行计数的方式。然后,我们将使用 match 方法查找句子中字符串的所有出现。最后,我们将得到一个包含每个字符串单独计数的对象,其键为字符串本身,值是计数。
算法
步骤 1:由于我们必须找出给定句子中字符串的计数,我们将通过定义函数并将其命名为 countStrings 来启动程序。此函数将具有两个参数:第一个参数是字符串数组,第二个参数是句子数组。
步骤 2:在声明完成给定任务的函数后,我们将定义空白对象并将其命名为 counts。此对象将存储给定句子中每个字符串的计数。
步骤 3:现在我们需要迭代给定的字符串数组。因此,首先我们将使用 counts 变量将每个字符串的初始计数设置为零。
步骤 4:迭代字符串后,现在该迭代给定的句子数组了。对于每个句子,我们将迭代字符串数组中的每个字符串。在此迭代中,我们将创建一个正则表达式,并在字符串周围设置单词边界以匹配精确的单词。我们还将使用 match 方法查找给定句子中出现的所有字符串。
步骤 5:由于我们已经声明了正则表达式和 match 方法,因此我们的下一个任务是验证匹配项。如果找到匹配项,我们将把计数保存在 count 变量中,否则将计数值设置为 0。
步骤 6:按照上述步骤,我们将通过将 count 添加到现有计数来增加 counts 对象中当前字符串的计数,最后我们将返回 counts 对象以显示句子中给定字符串的计数。
示例
// 创建一个函数来计算字符串
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];
// 创建用于单词匹配的正则表达式
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 是字符串数组的长度。因此,我们可以说复杂度取决于句子、字符串数组的大小以及单个字符串和句子的长度。
结论
我们已经成功实现了在句子数组中查找字符串数组的准确单个计数的代码。代码有效地计算了计数,因为我们使用了正则表达式和匹配函数来计算每个字符串的计数。但对于大量输入,时间复杂度会影响性能。
相关文章
有用资源
javascript 参考教程 - 该教程包含有关 javascript 的更多信息:https://www.cainiaomax.com/javascript/

