JavaScript Array.find Regex
我有两个关键字数组。我需要找出数组1中第一个关键字的索引,该索引与数组2中的任何关键字都匹配 例子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
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); });