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

132
Vistas
recorriendo dos matrices al mismo tiempo Java Script

Tengo una matriz [name1,item1,name2,item2,name3...] y necesito mapearla en

 { "@type": "ListItem", position: index + 1, name: , item: , }

Traté de dividirlo en dos matrices separadas como:

 var nameBreadCrumbStructuredData = splitBreadCrumbStructuredData.filter( function (value, index, Arr) { return index % 2 == 0; } ); var urlBreadCrumbStructuredData = splitBreadCrumbStructuredData.filter( function (value, index, Arr) { return index % 2 == 1; } ); var faqStructuredDataSplit = nameBreadCrumbStructuredData.map((i) => { urlBreadCrumbStructuredData.map((j) => ({ "@type": "ListItem", position: "", name: i, item: j, })); });

pero desafortunadamente no funciona. Intenté algunas formas diferentes y también forEach, pero estoy atascado. ¿Alguien puede ayudarme a hacer un bucle en una matriz pero cada segundo elemento o dos matrices al mismo tiempo? ¡Gracias por ayudar!

Como resultado, necesito obtener esto, mediante el mapeo:

 const breadCrumbStructuredData = { "@context": "https://schema.org", "@type": "BreadcrumbList", itemListElement: [ { "@type": "ListItem", position: 1, name: "nameExample", item: "https://example.com/", }, { "@type": "ListItem", position: 2, name: nameExampl1, item: "https://example1.com/", }, { "@type": "ListItem", position: 3, name: nameExamp2, item: "https://example2.com/", }, { "@type": "ListItem", position: 4, name: nameExamp3, item: "https://example3.com/", }, ], };
about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

cómo hacer un bucle en una matriz pero cada segundo elemento

Puedes usar el bucle for normal.

 const splitBreadCrumbStructuredData = ["name1", "item1", "name2", "item2", "name3", "item3"]; var faqStructuredDataSplit = []; for(let i = 0, p = 1; i < splitBreadCrumbStructuredData.length; i += 2){ faqStructuredDataSplit.push ({ "@type": "ListItem", position: p++, name: splitBreadCrumbStructuredData[i], item: splitBreadCrumbStructuredData[i + 1], }); } console.log(faqStructuredDataSplit);

dos arreglos al mismo tiempo

No necesita hacer un bucle en ambas matrices en la función de mapa.

 var faqStructuredDataSplit = nameBreadCrumbStructuredData.map((data, index) => ({ "@type": "ListItem", position: index + 1, name: data, item: urlBreadCrumbStructuredData[index], }));

El fragmento de código completo

 const splitBreadCrumbStructuredData = ["name1", "item1", "name2", "item2", "name3", "item3"]; var nameBreadCrumbStructuredData = splitBreadCrumbStructuredData.filter( function (value, index, Arr) { return index % 2 == 0; } ); var urlBreadCrumbStructuredData = splitBreadCrumbStructuredData.filter( function (value, index, Arr) { return index % 2 == 1; } ); var faqStructuredDataSplit = nameBreadCrumbStructuredData.map((data, index) => ({ "@type": "ListItem", position: index + 1, name: data, item: urlBreadCrumbStructuredData[index], })); console.log(faqStructuredDataSplit);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Si entiendo correctamente, quieres convertir algo como esto:

 ["name1","value1","name2", "value2"]

dentro

 [ {position: 1,name: "name1",item: "value1"}, {position: 2,name: "name2",item: "value2"} ]

Esto se puede hacer en una sola pasada sin tener que crear 2 matrices separadas

 const input = ["name1","value1","name2", "value2"]; const result = []; for(let i=0,p=1; i<input.length;i+=2,p++){ result.push( { position: p, name: input[i], item: input[i+1] } ); } console.log(result);

Tiene un poco más de estructura en torno al resultado deseado, esto está bien... solo agréguelo en:

 const input = ["name1","value1","name2", "value2"]; const breadCrumbStructuredData = { "@context": "https://schema.org", "@type": "BreadcrumbList", itemListElement:[] } for(let i=0,p=1; i<input.length;i+=2,p++){ breadCrumbStructuredData.itemListElement.push( { "@type":"ListItem", position: p, name: input[i], item: input[i+1] } ); } console.log(breadCrumbStructuredData);

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