Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

135
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!