Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

209
Visualizações
obtener una combinación de un objeto variante

Estoy atascado en esto, donde quiero establecer una combinación para el objeto variante.

los datos de las variantes son:

 "Variants": [ { "name": "color", "variants": [ { "id": "e637bd15-d5e3-486b-aba3-3193cfb621bd", "variantName": "red" }, { "id": "ee81a10d-5cdb-4e99-bc54-9f729025ff6b", "variantName": "yellow" } ], "id": 1 }, { "name": "size", "variants": [ { "id": "7546d9dd-410e-4bd7-99f2-cea7b5fd558b", "variantName": "large" }, { "id": "e787b3c5-45db-4502-ab1b-dfe1670814fc", "variantName": "small" } ], "id": 2 } ],

Quiero que la consola imprima: rojo/grande, rojo/pequeño, amarillo/grande, amarillo/pequeño. pero en cambio obtengo: consola

el código que escribí es:

 const combinations = () => { let result = []; let len = data.length; let i, j; for (i = 0; i < len; i++) { let len2 = data[i].variants.length; for (j = 0; j < len2 - 1; j++) { result.push( data[j].variants[i].variantName + '/' + data[i].variants[j + 1].variantName ); } } return console.log(result); };

¿Qué hice mal? lo que me estoy perdiendo, gracias de antemano.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

puede lograr esto usando flatMap y map .

 let data =[{name:"color",variants:[{id:"e637bd15-d5e3-486b-aba3-3193cfb621bd",variantName:"red"},{id:"ee81a10d-5cdb-4e99-bc54-9f729025ff6b",variantName:"yellow"}],id:1},{name:"size",variants:[{id:"7546d9dd-410e-4bd7-99f2-cea7b5fd558b",variantName:"large"},{id:"e787b3c5-45db-4502-ab1b-dfe1670814fc",variantName:"small"}],id:2}] let a = data[0].variants.flatMap((color) => { return data[1].variants.map((size) => `${color.variantName}/${size.variantName}`) }) console.log(a)

Si desea el producto cartesiano cuando el número de matrices no se especifica explícitamente, puede hacer algo como esta referencia

 let data = [ { "name": "color", "variants": [ { "id": "e637bd15-d5e3-486b-aba3-3193cfb621bd", "variantName": "red" }, { "id": "ee81a10d-5cdb-4e99-bc54-9f729025ff6b", "variantName": "yellow" } ], "id": 1 }, { "name": "size", "variants": [ { "id": "7546d9dd-410e-4bd7-99f2-cea7b5fd558b", "variantName": "large" }, { "id": "e787b3c5-45db-4502-ab1b-dfe1670814fc", "variantName": "small" }, { "id": "e787b3c5-45dssb-4502-ab1b-dfe1670814fc", "variantName": "medium" } ], "id": 2 }, { "name": "weight", "variants": [ { "id": "7546d9dd-410e-4bd7-99f2-cea7b5fd558b", "variantName": "heavy" }, { "id": "e787b3c5-45db-4502-ab1b-dfe1670814fc", "variantName": "light" } ], "id": 3 }, { "name": "material", "variants": [ { "id": "7546d9dd-410e-4bdhjh2-cea7b5fd558b", "variantName": "plastic" }, { "id": "e787b3c5-45db-kkhkab1b-dfe1670814fc", "variantName": "wood" }, { "id": "e787b3c5-45dbhhab1b-dfe1670814fc", "variantName": "cement" }, ], "id": 4 } ] let combined = data.reduce((a,{variants})=>{ return a.flatMap(x=>variants.map(y=>x.concat(y.variantName))) },[[]]).map((z) => z.join("/")) console.log(combined)

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda