Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

187
Vistas
¿Cómo filtrar datos y mostrarlos en la parte superior de la matriz?

Estoy haciendo un intercambio descentralizado en el que estoy tratando de implementar una funcionalidad de búsqueda donde los usuarios colocan la dirección, el nombre o el símbolo del token. Pero el desafío al que me enfrento es que cuando los usuarios busquen tokens como BUSD , el token presente en la billetera del usuario aparecerá en primer lugar. por ejemplo:-

supongamos que tengo estos tokens en mi billetera y recibo esta respuesta de web3

 [ { "token_address":"0x0e262..........", "name":"Busy DAO", "symbol":"BUSY", "logo":null, "thumbnail":null, "decimals":"18", "balance":"685485000000000000000000" },{ "token_address":"0x1f762..........", "name":"BUSD Token", "symbol":"BUSD", "logo":null, "thumbnail":null, "decimals":"18", "balance":"32491651588824863" } ]

Ahora, si los usuarios buscaron BUS en su cuadro de búsqueda y obtienen una lista de más de 20 o 30 tokens, entonces quiero filtrar esa matriz y quiero hacer coincidir el símbolo de la respuesta del token buscado y el token presente en mi billetera y luego mostrar el token presente en una billetera en la parte superior y muestra el resto de los tokens según su nombre o símbolo (orden alfabético) en la lista de búsqueda.

Intenté buscar esto en la web pero no obtuve nada al respecto.

Aquí está mi código:

 // wallet assets const getWalletAssets = useMoralisWeb3ApiCall(moralisWeb3Api.account.getTokenBalances, { chain: 'bsc', address: connectedWallet }) // Token Search filter (getting tokens) const searchTokenName = coins.filter((c) => c.name.toLowerCase().includes(search.toLowerCase())) // Sorting them according to their symbols (alphabetic order) const searchToken = tokenData.sort((a, b) => a.symbol.localeCompare(b.symbol))
about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

Tal vez este enfoque sería útil. Primero filtre los resultados que están dentro y fuera de la billetera y luego combínelos en una matriz.

 const searchResults = ['BNB','BNT','BORA','BSV','BTC','BTCB','BTCST','BTG','BTT','BUSD','DASH','DCR','DENT','DGB','DOGE','ELON','ENJ','EOS','ETC','ETH','EWT','FEI','FET','FIL']; const walletCoins = ['BTC','DOGE','ETH', '1INCH']; const resultInWallet = searchResults.filter((coin) => walletCoins.includes(coin)); const resultNotInWallet = searchResults.filter((coin) => !walletCoins.includes(coin)); const result = [...resultInWallet, ...resultNotInWallet]; console.log(result)
 .as-console-wrapper{min-height: 100%!important; top: 0}

--- actualizado ---

 const searchResults = [{symbol:'BNB'},{symbol:'BNT'},{symbol:'BTC'},{symbol:'BTCB'},{symbol:'BTCST'},{symbol:'BTG'},{symbol:'BTT'},{symbol:'BUSD'},{symbol:'DOGE'},{symbol:'ELON'},{symbol:'ETC'},{symbol:'ETH'},{symbol:'EWT'},{symbol:'FEI'}]; const walletCoins = [{symbol:'BTC'},{symbol:'DOGE'},{symbol:'ETH'},{symbol:'1INCH'}]; const resultObj = searchResults.reduce((acc, targetCoin) => { if (walletCoins.some((walletCoin) => walletCoin.symbol === targetCoin.symbol)) { acc.inWallet = [...acc.inWallet, targetCoin]; } else { acc.notInWallet = [...acc.notInWallet, targetCoin]; } return acc; }, { inWallet: [], notInWallet:[] }); const result = [...resultObj.inWallet, ...resultObj.notInWallet]; console.log(result);
 .as-console-wrapper{min-height: 100%!important; top: 0}

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda