确定一个字符串是否存在于以另一个数组中的另一组字符串开头的数组中

Determine if a string is present in an array starting with another set of strings in another array

我不确定我在标题中是否解释得很好,但这里有一个例子:

我有两个数组:我想获取 arr2 中的每个字符串并查看 arr1 中是否有匹配项。

let arr1 = ["Apple","Ape","Orange","Apricot","Pineapple"]
let arr2 = ["Ap","Or"]

我想取回以下数组(无论顺序如何):

["Apple","Ape","Orange","Apricot"]

我找到了 .includes() 但它只搜索完全匹配。

不需要库,只需要 filter 第一个数组,看第二个数组的 some 个子字符串是否包含在要迭代的单词中:

let arr1 = ["Apple","Ape","Orange","Apricot","Pineapple"]
let arr2 = ["Ap","Or"]
console.log(
  arr1.filter((word) => arr2.some(substr => word.includes(substr)))
);

一个传统的方法是使用indexOf()

使用两次迭代来检查它

let arr1 = ["Apple","Ape","Orange","Apricot","Pineapple"]
let arr2 = ["Ap","Or"]

for(var i in arr1){
  for(var j in arr2){
     if(arr1[i].indexOf(arr2[j]) == 0){
       console.log(arr1[i]);
       break;
     }
  }
}