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

156
Vistas
Necesitaba hacer una lista en Javascript, pero fue en vano

Estoy usando una API y quería extraer las URL de la API, para esto hice un código, pero solo aparece una url, daré un ejemplo del código JSON de la API. Sin mencionar que viene un título, luego viene en orden primero el título y luego la URL

 { "items": [ { "title":"YouTube", "url":"https://www.youtube.com/"}, { "title":"Google", "url":"https://www.google.com/"}, { "title":"Facebook", "url":"https://www.facebook.com/"}, { "title":"Github", "url":"https://www.github.com"}, { "title":"Microsoft", "url":"https://www.microsoft.com"} ] }

No son exactamente estas URL, las usé como ejemplo.

Quisiera extraer esta información y dejarla de la siguiente manera:

 [Title](Url)

Quiero que se vea así, porque el título se volverá azul y cuando hagas clic irá a la URL del sitio.

Mi código que no funcionó es este:

 let response, channel, info; try { response = await axios.get(url) channel = response.data info = channel.items[0] } catch (e) { return message.channel.send(`Error`) } let btn = new disbut.MessageButton() .setLabel("Site") .setStyle("url") .setURL("https://youtube.com") const embed = new MessageEmbed() .setColor("#ffff00") .setDescription(`[${info.title}](${info.url})\n`) await message.channel.send({ embed: embed, buttons: btn });

Este info.url es donde obtienes la URL e info.title es donde obtienes el título, solo que solo hay 1 problema, solo se necesita 1 título y 1 url, me gustaría que los tomes a todos y formes una lista en The Robot de discordia

Este es el resultado del código:

Pero quería que se viera así: Youtube Google Facebook Github Microsoft

Para que solo aparezca youtube necesito que muestres mínimo 1 y máximo 10. Y al hacer clic en cada título, será redirigido al sitio.

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

info solo se refiere a channel.items[0] , que es el primer elemento

Puede usar <Array>.map para mapear los elementos en su formato []() y luego <Array>.join para concatenarlos en una cadena separada por saltos de línea.

 .setDescription(channel.items.map(info => `[${info.title}](${info.url})`).join('\n'))
about 4 years ago · Juan Pablo Isaza Denunciar

0

Debe formatear la matriz de items como una lista Markdown .

Asigne la matriz channel.items a una matriz de cadenas de elementos de lista, luego úna todo junto con líneas nuevas.

 .setDescription( channel.items.map(info => `* [${info.title}](${info.url})`).join("\n") )
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