Тут поможет
Map! Словарь, где ключами может выступать не обязательно строка, а вообще любой тип данных JS.
Надо будет собирать Map, в который записывать ключом очередной элемент, а значением - id массива, где он встретился. Если при вставке очередного ключа выяснится, что такой уже есть – вот она, пара!
const someObject = {a:'value A'};
const arr1 = [1, 'test', someObject];
const arr2 = [100, 200, 'testing', {a:'value A'}];
const arr3 = [1e3, someObject];
const arrays = [arr1, arr2, arr3];
const dict = new Map();
const addArray = (arr, label) => {
for(let i=0, len=arr.length; i<len; i++) {
const key = arr[i];
if (dict.has(key)) return [key, dict.get(key), label];
dict.set(key, label);
}
}
for (let i=0, len = arrays.length; i<len; i++) {
const check = addArray(arrays[i], `arr${i+1}`);
if (!check) continue;
console.log(`Value ${check[0]} found in arrays ${check[1]} and ${check[2]}`);
break;
}
// Value [object Object] found in arrays arr1 and arr3