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

236
Vistas
Cómo fusionar elementos de cadena en una salida separada con `,`

Estoy tratando de obtener datos de elementos div y generarlos separados con , de esta manera a, b ¿Cómo puedo lograr esto? Para mi ejemplo, el texto en la salida p debería verse como test, test222 dada

 let desc = document.querySelectorAll(".desc"); let output = document.querySelectorAll(".output"); let items = []; desc.forEach((item, i) => { console.log(item.dataset.sentence); output.textContent += item[i]; })
 <div class="desc" data-sentence="test"> </div> <div class="desc" data-sentence="test222 dada"> </div> <p class="output"> </p>

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

0

Esto es lo que podrías probar:

  1. Almacene su texto en una matriz

La forma en que obtiene el texto con item.dataset.sentence está totalmente bien, solo necesita colocarlos en una matriz para usarlos más tarde.

 let text = []; desc.forEach((item, i) => { text.push(item.dataset.sentence); })
  1. Convierta la matriz en una cadena usando join()

text.join(',') => 'test,test222 dada'

  1. Actualizar el contenido

document.querySelectorAll(".output") no funcionará ya que devolverá una matriz, deberá cambiarlo a document.querySelector(".output") para tener un elemento.

 const desc = document.querySelectorAll(".desc"); const output = document.querySelector(".output"); const text = []; desc.forEach(item => text.push(item.dataset.sentence)); output.textContent = text.join(',');
 <div class="desc" data-sentence="test"></div> <div class="desc" data-sentence="test222 dada"></div> <p class="output"></p>

about 4 years ago · Juan Pablo Isaza Denunciar

0

Aquí hay otra solución que demuestra el uso de funciones avanzadas de sintaxis de ECMAScript como doble desestructuración en la firma de la función, distribución de matrices ( [...iterable] ) junto con Array.prototype.map .

 let desc = document.querySelectorAll(".desc"); let output = document.querySelector(".output"); output.textContent = [...desc].map(({dataset: { sentence } }) => sentence).join(', ');
 <div class="desc" data-sentence="test"></div> <div class="desc" data-sentence="test222 dada"></div> <p class="output"></p>

Explicaciones:

  1. [...desc] extiende la NodeList que tiene en desc en una matriz , lo que permite el uso de métodos de matriz como map y join .
  2. ({dataset: { sentence } }) desestructura el objeto que se pasa al iterador del mapa. La firma básicamente dice "Espero que me pasen un objeto que tiene una propiedad de conjunto de dataset , que es un objeto que tiene una propiedad de sentence . Dame esa sentence como una variable local dentro del cuerpo de la función".
about 4 years ago · Juan Pablo Isaza Denunciar

0

Casi lo terminas pero cometes algún error.

Cuando selecciona la salida, solo necesita usar querySelector en lugar de querySelectorAll .

 let desc = document.querySelectorAll(".desc"); let output = document.querySelector(".output"); const data = []; desc.forEach((item) => { data.push(item.dataset.sentence); }); output.textContent = data.join(",");
 <div class="desc" data-sentence="test"> </div> <div class="desc" data-sentence="test222 dada"> </div> <p class="output"> </p>

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