У меня есть два целых массива, которые содержат числовые значения. Я хочу просмотреть оба списка и проверить наличие (или отсутствие) между списками. То есть Я хочу выполнить итерацию через массив и найти те элементы, которые отображаются в обоих списках, в то время как в отдельной функции я хочу пройти через массивы и найти элементы, которые находятся в первом, а не во втором.
Очевидный способ сделать это вложен для циклов:
var containedInFirst = false;
for (var primaryID = 0; primaryID < PrimaryArray.length; primaryID++) {
containedInFirst = false;
for (var secondaryID = 0; secondaryID < SecondaryArray.length; secondaryID++) {
if (PrimaryArray [primaryID] === SecondaryArray[secondaryID]) {
containedInFirst = true;
break;
}
}
//Do some more stuff based on the value of containedInFirst here
}
Но при условии, что списки могут содержать сотни или тысячи записей, это довольно много итераций и интенсивность процессора. Поэтому я задавался вопросом, есть ли более эффективный способ выполнения вышеуказанного кода? Не только фактический поиск, но и нечто более эффективное, чем массив Integer, как контейнер для значений, или просто не использование вложенных циклов для перемещения и сравнения содержимого.
Любые мысли о более эффективных или элегантных решениях?