Javascript 如何找到数组中元素与集合数组节点的最佳匹配。js

Javascript 如何找到数组中元素与集合数组节点的最佳匹配。js,javascript,arrays,node.js,for-loop,Javascript,Arrays,Node.js,For Loop,设置数组: let arr = ["hello","my","name","connor"] 要与arr进行比较的所有元素的数组: let allArr = ["hello my name is", "hello my name is connor", "hello connor name"] 因此,在这个场景中,我想要一个解决方案,它可以选择与arr匹配的allArr的最佳元素,其索引足够了 我已经尝试集成两个for循环,例如 for (i in allArr){ for(x in a

设置数组:

let arr = ["hello","my","name","connor"]
要与arr进行比较的所有元素的数组:

let allArr = ["hello my name is", "hello my name is connor", "hello connor name"]
因此,在这个场景中,我想要一个解决方案,它可以选择与
arr
匹配的
allArr
的最佳元素,其索引足够了

我已经尝试集成两个for循环,例如

for (i in allArr){
  for(x in arr){
     if(allArr[i].includes(arr[x]){
        do something
     }
  } 
}
但似乎不能正常工作。
需要最快但解释最好的解决方案[仅适用于复杂的情况,哈哈]

您可以映射每个句子中每个单词的数量。稍后,您可以获取最大值的索引

var words=[“你好”、“我的”、“名字”、“康纳”],
句子=[“你好,我的名字是”,“你好,我的名字是康纳”,“你好,康纳的名字”],
计数=句子.map(s=>words.reduce((总和,单词)=>sum+s.includes(单词),0)),
指数=计数。减少((r,c,i,a)=>{
如果(!(a[r[0]]>=c)){
返回[i];
}
if(a[r[0]==c){
r、 推(i);
}
返回r;
}, []);
控制台日志(计数);

控制台日志(索引)
什么定义了与
arr
匹配的
allArr
的最佳元素?在这种情况下,它将是索引[1],因为它包含了大部分arr[x],我认为它尽可能简单