gpt4 book ai didi

javascript - 使用 Javascript 使用 match 来计算字符串中单词的出现次数

转载 作者:行者123 更新时间:2023-11-28 14:57:24 28 4
gpt4 key购买 nike

我尝试使用 match 方法计算较长文本中每个单词的出现次数,但我只得到一个错误,而不是 result:

Cannot read property 'length' of null

我的函数如下所示:

const myText = "cat dog stop rain cat"

myText.split(" ").forEach((word) => {
const numberOfOccurrences = myText.match(/word/g).length
console.log(`${word} - ${numberOfOccurrences}`)
})

如何修复它以获得正确的结果?

最佳答案

正则表达式从字面上匹配word,因为变量word从未被指示。在字符串 myText 中找不到匹配项,因此它为 null,因此出现错误。尝试这样:

myText.match(new RegExp(word, "g")).length

这使用 RegExp构造函数,它接受两个参数:模式和标志。上面将传递 word 的实际值而不是文字 word 和标志 g。它相当于 /word/g,只不过 word 与传递的 word 正确匹配。请参阅以下代码片段:

const myText = "cat dog stop rain cat"

myText.split(" ").forEach((word) => {
const numberOfOccurrences = myText.match(new RegExp(word, "g")).length
console.log(`${word} - ${numberOfOccurrences}`)
})

正如其他人指出的那样,有更好的方法可以做到这一点。上面代码的输出输出 cat 的出现两次,因为它出现了两次。我建议将计数保存在对象中并在每次传递时更新计数,这 ibrahim mahrir在他们的回答中显示。这个想法是使用 reduce迭代分割数组,并使用空对象的初始值进行归约。然后,空对象被更新为单词计数加一,初始计数为零。

关于javascript - 使用 Javascript 使用 match 来计算字符串中单词的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42334084/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com