function scrapZooGame(zooprice, zooper100hashrate, alreadygot) { fetch('https://api.zoogame.finance/api/zoo/market?nftName=&team=&rarity=&page=1&perPage=10000&type=1¤tPage=1').then(function(response) { return response.json(); }).then(function(r) { var multi = []; var solo = []; for (let i = 0; i < r.data.length; i++) { if (r.data[i].nfts.length > 1) multi.push(r.data[i]); else solo.push(r.data[i]); } solo = solo.filter(z => alreadygot.indexOf(z.team) == -1); var fams = {} var epics = []; for (let i = 0; i < solo.length; i++) { if (fams.hasOwnProperty(solo[i].team) == false) fams[solo[i].team] = {}; if (fams[solo[i].team].hasOwnProperty(solo[i].rarity) == false) fams[solo[i].team][solo[i].rarity] = []; if (solo[i].rarity == "Epic") epics.push(solo[i]); solo[i].price /= 1000000000000000000; fams[solo[i].team][solo[i].rarity].push(solo[i]) } for (const f in fams) { if (fams[f].hasOwnProperty("Junk") == false || fams[f].hasOwnProperty("Normal") == false || fams[f].hasOwnProperty("Rare") == false || fams[f].hasOwnProperty("Epic") == false) { delete fams[f]; } else { for (const q in fams[f]) { fams[f][q].sort((a, b) => { if (a.price > b.price) return 1; if (a.price < b.price) return -1; return 0; }) } } } for (let i = 0; i < epics.length; i++) { if (fams.hasOwnProperty(epics[i].team) == false) { epics.splice(i, 1); i--; } else { epics[i].fullprice = epics[i].price + fams[epics[i].team].Junk[0].price + fams[epics[i].team].Normal[0].price + fams[epics[i].team].Rare[0].price; epics[i].fullpower = epics[i].power + 57; epics[i].worth = epics[i].fullpower / epics[i].fullprice; epics[i].journa = (((epics[i].fullpower / 100) * zooper100hashrate) * zooprice) epics[i].renta = epics[i].fullprice / epics[i].journa } } epics.sort((a, b) => { if (a.worth > b.worth) return -1; if (a.worth < b.worth) return 1; return 0; }) console.log(epics); }) }