JavaScript Array.find Regex

JavaScript Array.find Regex,javascript,arrays,ecmascript-6,Javascript,Arrays,Ecmascript 6,我有两个关键字数组。我需要找出数组1中第一个关键字的索引,该索引与数组2中的任何关键字都匹配 例子 array1 = ['spinach', 'avocado', 'milk', 'beans', 'ham', 'eggs', 'cheese']; array2 = ['cheese', 'milk']; 在本例中,索引2处的milk将是第一个匹配项,我想返回索引2 如果使用regex将每个元素与array2进行比较,我可以使用array.find()返回第一个匹配的索引吗?您可以使用find

我有两个关键字数组。我需要找出数组1中第一个关键字的索引,该索引与数组2中的任何关键字都匹配

例子

array1 = ['spinach', 'avocado', 'milk', 'beans', 'ham', 'eggs', 'cheese'];
array2 = ['cheese', 'milk'];
在本例中,索引2处的milk将是第一个匹配项,我想返回索引2


如果使用regex将每个元素与array2进行比较,我可以使用array.find()返回第一个匹配的索引吗?

您可以使用
findIndex()
includes()找到匹配的索引:

演示:

让a1=[“菠菜”、“鳄梨”、“牛奶”、“豆类”、“火腿”、“鸡蛋”、“奶酪”],
a2=[‘奶酪’、‘牛奶’];
let index=a1.findIndex(s=>a2.includes);
控制台日志(索引)您可以使用并检查第二个数组

var array1=[“菠菜”、“鳄梨”、“牛奶”、“豆类”、“火腿”、“鸡蛋”、“奶酪”],
array2=[“奶酪”、“牛奶”];

log(array1.findIndex(v=>array2.includes(v))改用
.findIndex

const array1=[‘菠菜’、‘鳄梨’、‘牛奶’、‘豆类’、‘火腿’、‘鸡蛋’、‘奶酪’];
const array2=[“奶酪”、“牛奶”];
const foundIndex=array1.findIndex(elm=>array2.includes(elm));

console.log(foundIndex)
您可以从
array2
创建正则表达式,然后使用
Array.findIndex

var re = new RegExp('^'+array2.join('|')+'$');
var found = array1.findIndex(function (e) { return re.test(e); });
var re = new RegExp('^'+array2.join('|')+'$');
var found = array1.findIndex(function (e) { return re.test(e); });