Проблема в сравнение массивов объектов js

Мне api возвращает 4 массива объектов(coinEthChain, coinBscChain и т.д). У каждого объекта есть symbol и я их сравниваю, чтобы узнать, если ли одинаковые symbol в coinEthChain и coinBscChain. Но столкнулся с двумя проблемами:

  1. Чтобы пройтись по объектам, я создаю цикл for и константу minLength, чтобы цикл не был бесконечным. Но из-за того что в первом массиве объектов больше, чем в во втором, то не все объекты сравниваются. А если я укажу max, то будет ошибка.
  2. При таком сравнение как у меня сейчас, почему-то одинаковые symbol не добавляются в массив, они просто пропускаются, хоть в первом и во втором массиве есть одинаковые symbol, например: AAVE. Не понимаю почему так происходит.
const apiUrlBsc = 'https://tokens.coingecko.com/binance-smart-chain/all.json'; 
const apiUrlPolygon = 'https://tokens.coingecko.com/polygon-pos/all.json'; 
const apiUrlAvalanche = 'https://tokens.coingecko.com/avalanche/all.json'; 

let coinEthChain = []; 
let coinBscChain = []; 
let coinPolChain = []; 
let coinAvaxChain = []; 

// Функция для получения данных по API и заполнения соответствующего массива 
function fetchData(apiUrl, coinArray) { 
return fetch(apiUrl) 
 .then(response => { 
   if (!response.ok) { 
     throw new Error(`Network response was not ok: ${response.statusText}`); 
   } 
   return response.json(); 
 }) 
 .then(data => { 
   data.tokens.forEach((coin) => { 
     coinArray.push(coin); 
   }); 
 }) 
 .catch(error => { 
   console.error('Fetch error:', error); 
 }); 
} 

// Последовательный вызов функций fetchData для каждого API 
fetchData(apiUrlEth, coinEthChain) 
.then(() => fetchData(apiUrlBsc, coinBscChain)) 
.then(() => fetchData(apiUrlPolygon, coinPolChain)) 
.then(() => fetchData(apiUrlAvalanche, coinAvaxChain)) 
.then(() => { 
 // Вызов compareArraysBySymbol после получения всех данных 
 compareArraysBySymbol(coinEthChain, coinBscChain, coinPolChain, coinAvaxChain); 
}); 

console.log(coinEthChain); 
console.log(coinBscChain); 


function compareArraysBySymbol(array1, array2, array3, array4) { 
const commonSymbols = []; 
const minLength = Math.min(array1.length, array2.length); 


for (let i = 0; i < minLength; i++) { 
 if(array2[i].symbol == array1[i].symbol) { 
   commonSymbols.push(array1[i].symbol); 
   console.log(array1[i].symbol); 
 } 
} 

return commonSymbols; 
}```

Ответы (0 шт):