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

137
Vistas
bucle foreach dentro de un para cada bucle

Para dar contexto al tema:

Estoy usando GraphQL para llamar atributos de variantes de productos (colores de variantes de productos) a la página del catálogo para cada producto que se muestra allí.

Luego estoy procesando los datos y estoy tratando de asignar cada variante de color a su producto respetable.

Lo estoy comparando con el ID de entidad del producto, que he escrito en conjuntos de datos HTML.

El problema: asigna cada color a cada producto, puede verlo en vivo aquí: https://zebreo.com/shop/ , el rojo y el púrpura deben ser solo para el producto de la izquierda y el azul y el amarillo deben ser solo para el producto de la derecha.

Aquí está mi código:

 if (data) { const products = data.site.route.node.products.edges.map( item => { const product = item.node; const options = product.productOptions.edges; product.productOptions = options.map(item => item.node).filter((i) => i.displayName === 'Color'); return product; }); var array = []; $('[data-entity-id]').each(function () { array.push(parseInt($(this).attr("data-entity-id"))); }); const productIds = products.map(x => x.entityId); const filtered = productIds.filter(i => array.indexOf(i) !== -1); const productColor = products.map(y => y.productOptions[0].values.edges); const fragment = document.createDocumentFragment(); this.productColors.html(''); var appended = false; products.forEach((product, index) => { const id = product.entityId; const hex = product.productOptions[0].values.edges.map(node => node.node.hexColors[0]); const matched = array.find((element,index) => { return element === id; }); console.log(this.context); hex.forEach((code,index) => { const linkNode = document.createElement('span'); linkNode.className = 'product-swatch'; linkNode.setAttribute('style', `background: ${code};`); fragment.append(linkNode); this.productColors.append(fragment); // const target = document.querySelector('[data-entity-id] .card-body'); // target.append(fragment); }); }); }

No puedo entender, cómo debo construirlo. Dado que necesito recorrer cada producto para obtener el ID de entidad, que luego comparo con el ID del conjunto de datos, que quiero usar para asignar los colores correctos de la respuesta al producto respectivo.

Pero luego, al mismo tiempo, también tengo que hacer un bucle a través de cada código de color HEX de la respuesta, y crear un elemento de intervalo a partir de él y luego asignar el color a su atributo de estilo.

Cualquier consejo será útil.

¡Gracias!

about 4 years ago · Juan Pablo Isaza
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