Я столкнулся с проблемой сопоставления массивов и строк, но обычный подход регулярных выражений (сопоставление границ), похоже, не работает в моем случае.
Нужно ли использовать разные границы слов илиу кого-нибудь есть более чистое решение?
var nameArray = ['AA', 'BB', 'WBB'];
var idArray = ['AA','BB','CC'];
var counter=0;
for(var j=0; j<idArray.length;j++)
{
for(var i=0; i<nameArray.length;i++)
{
if(nameArray[i].indexOf(idArray[j]) != -1)
counter++;
/*
if(nameArray[i].indexOf('/\b'+idArray[j]+'\b/') != -1)
counter++;
*/
/*
if('/\b'+nameArray[i]+'\b/'.indexOf(idArray[j]) != -1)
counter++;
*/
}
}
console.log(counter);
Как вы видите, обнаружено 3 совпадения, но мне нужно, чтобы оно распознавало только совпадения всего слова (в данном случае 2).
Циклыи структура необходимы, так как мне нужно обрабатывать большие массивы в моем проекте.
JSFiddle: Ссылка