javascript - 在数组中搜索与另一个数组中的字符串相似(近似匹配)的字符串
问题描述
我想知道如何使用 JavaScript在一个数组中找到类似于另一个数组中的字符串的字符串,
我设法找到与此完全匹配的:
var arr = ['English Question Answering', 'Questions And Reviews Organic Milk', 'Facebook Page Discovery (En) - 1426357'];
var keyword = ['English Question Answering', 'Facebook Page Discovery (En)']
var ret = []
arr.forEach(val => {
if (keyword.includes(val[1])) {
ret.push(`*${val[0]}* - ***${val[1]}*** - Pay: *${val[3]}* - tasks: *${val[5]}*`)
}
})
我如何使这项工作进行近似匹配,例如:
var arr = ['English Question Answering', 'Questions And Reviews Organic Milk', 'Facebook Page Discovery (En) - 1426357'];
var keyword = ['English Question Answering', 'Facebook Page Discovery (En)'];
我希望得到:
['English Question Answering', 'Facebook Page Discovery (En) - 1426357'];
解决方案
检查这个问题:Compare Strings Javascript Return %of Likely
基本上,您必须编写一个函数来比较两个字符串(上面链接的问题中有一个示例函数)并循环遍历两个数组,一一比较字符串。
一些伪代码:
function checkSimilarity(s1, s2) {
// ... compare the strings s1 and s2
}
arrOne.forEach((s1) => {
arrTwo.forEach((s2) => {
if(checkSimilarity(s1, s2) > 0.5)
console.log("Match found between" + s1 + " and " + s2);
console.log(checkSimilarity(s1, s2));
}
});
});
推荐阅读
- gpu - Ubuntu 18.04 上的 Nvidia GeForce 210 计算问题
- javascript - Not sure how to render results of useEffect in browser
- python - 为什么python模块requests_html仅在从输出中的字符串导入后取消粗体和下划线效果?
- c++ - 我关于平均值和标准差的微积分不起作用
- sql - How to find the staff that have taught more than 2 units
- jython - Streamsets Jython 评估器
- c# - 将下拉菜单与其在 Winforms 中的按钮相结合?
- python-3.x - 为什么 pip 为另一个具有不同 python 版本的 venv 重新下载相同的包?
- vb.net - 如何从 vb.net 中的 DataTables 构建值的总和?
- angular - 使用 isEmpty 函数扩展 ControlValueAccessor