Скажем, у вас есть два массива (псевдокод):
arrayA = [ "a", "b", "c", "d" ];
arrayB = [ "b", "c", "d", "e" ];
Можно ли найти unique items to arrayA
(arrayA.a), common items
(b, c, d) и unique items to arrayB
(arrayB.e), используя только два цикла во вложенном формате?
Мы можем определить первые две цели как таковые:
// Loop over arrayA
for (itemA in arrayA) {
// Loop over arrayB
for (itemB in arrayB) {
// Assume that arrayA.itemA does not exist in arrayB by default
exists = false;
// Check for matching arrayA.itemA in arrayB
if (itemA == itemB) {
// If true set exists variable and break the loop
exists = true;
break;
}
}
// Tells us if an item is common
if (exists) {
// Do something
}
// The additional condition we need to determine (item is unique to array b)
else if () {}
// Tells us if the item is unique to arrayA
else {
// Do something else
}
}
Вопрос: Можем ли мы пойти еще дальше и определить третье условие (элемент уникален для arrayB)? Хитрость заключается в том, чтобы иметь возможность воздействовать на третье условие в итерации первого цикла.
Циклы могут быть в любом формате (do while, do, for, for in) и в любой комбинации.