gpt4 book ai didi

javascript - 如何使用 JavaScript 计算字符串中不同术语出现的次数?

转载 作者:行者123 更新时间:2023-12-03 06:51:29 25 4
gpt4 key购买 nike

我有一个包含 20 个短语的列表,我想在一篇文章中计数。
目前,我正在做


let counts = phrases.map((phrase, idx) => {
phrase.usage = (articleBody.match(new RegExp(phrase.phrase, 'gi')) || []).length
return phrase
})
这需要我每次都进行昂贵的搜索。有什么方法可以更快或一次完成吗?

最佳答案

您可以使用 String.prototype.matchAll

const str = ['ocurrence 1, and..', 'ocurrence 2, and..', 'other phrases'];

const array = [...str.join ` `.matchAll(new RegExp('ocurrence', 'gi'))];

console.log(array.length); // 2

编辑:计算一个字符串中的出现次数;

const articleBody = 'ocurrence 1, and.. ocurrence 2, and... etc';
const array = [...articleBody.matchAll(new RegExp('ocurrence', 'gi'))];

console.log(array.length) // 2;

编辑2:
使用服务 worker
我创建了一个 3000 字的文本(“Lorem ipsum”生成器)。
main.js

if ("serviceWorker" in navigator) {
document.addEventListener("DOMContentLoaded", function () {
const phrases = [
{ text: "Lorem ipsum" },
{ text: "elementum mattis" },
];
phrases.map((phrase, index) => {
const phraseWorker = new Worker("phrase-match-sw.js");

phraseWorker.onmessage = function (oEvent) {
const { text, match } = oEvent.data;
phrases[index] = { text, match };
};

phraseWorker.postMessage({
article:
"Lorem ipsum dolor sit amet consectetur adipiscing elit sapien orci, ligula leo consequat mus tellus elementum mattis lacus maecenas curabitur, ",
phrase,
});
});
});
}

短语匹配 sw.js

onmessage = function (event) {
const { article, phrase } = event.data;
phrase.match = [...article.matchAll(new RegExp(phrase.text,"gi"))].length;
postMessage(phrase);
};

关于javascript - 如何使用 JavaScript 计算字符串中不同术语出现的次数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64159663/

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