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

140
Vistas
Recorriendo una matriz de matrices y eliminando un elemento

Mi pregunta es bastante extraña porque es para OfficeScripts. Estoy bastante seguro de que está basado en Javascript porque eso es lo que he estado escribiendo. Ahora mi pregunta. Tengo una matriz de matrices que estoy recorriendo hacia atrás para eliminar algunos elementos. básicamente, recopilé datos de fila de una tabla y luego los usé para filtrar otras tablas, y luego construí una matriz de una matriz usando ambos datos. luciendo algo como esto:

 const Data = [["Name", "Area", "Position", "Shift"]]; const otherData = [["Training A","Course A","Level","Curricula"],["Training B","Course B","Level","Curricula"],["Training C","Course C","Level","Curricula"]]; var CombinedData = otherData.map(x=>[...Data[0], ...x]); console.log(CombinedData);

Lo que busco lograr es eliminar la "Posición" de cada matriz en la matriz de matrices CombinedData. En este momento estoy escribiendo esto y está vaciando mi matriz:

 const Data = [["Name", "Area", "Position", "Shift"]]; const otherData = [["Training A","Course A","Level","Curricula"],["Training B","Course B","Level","Curricula"],["Training C","Course C","Level","Curricula"]]; var CombinedData = otherData.map(x=>[...Data[0], ...x]); console.log(CombinedData); for(let i = CombinedData.length -1; i>=0; i--){ if(CombinedData[i][2] == Data[0][2]){ CombinedData[i].splice(i,1); } } console.log(CombinedData);
Lo que me gustaría que fuera el resultado final es

 CombinedData= [["Name", "Area", "Shift","Training A","Course A","Level","Curricula"],["Name", "Area", "Shift","Training B","Course B","Level","Curricula"],["Name", "Area", "Shift","Training C","Course C","Level","Curricula"]];

Lo cual obviamente no está funcionando. ¿Alguna idea sobre lo que tengo que hacer? JavaScript no es mi lenguaje más fuerte y soy completamente nuevo en OfficeScripts. Agradezco cualquier ayuda.

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

0

El problema es con splice(i, 1) , esto debería ser splice(2, 1) ya que necesita eliminar el elemento 2 (indexado).

 const Data = [["Name", "Area", "Position", "Shift",]]; const otherData = [["Training A","Course A","Level","Curricula"],["Training B","Course B","Level","Curricula"],["Training C","Course C","Level","Curricula"]]; var CombinedData = otherData.map(x=>[...Data[0], ...x]); for(let i = CombinedData.length -1; i>=0; i--){ if(CombinedData[i][2] == Data[0][2]){ CombinedData[i].splice(2,1); } } console.log(CombinedData);

about 4 years ago · Juan Pablo Isaza Denunciar

0

Dado que solo usa el elemento 0 de Data , solo filtre eso una vez y utilícelo en su combinación:

 const Data = [["Name", "Area", "Position", "Shift",]]; const otherData = [["Training A","Course A","Level","Curricula"],["Training B","Course B","Level","Curricula"],["Training C","Course C","Level","Curricula"]]; var elem0 = Data[0].filter( y => y != "Position" ) var CombinedData = otherData.map(x=>[...elem0, ...x]); console.log(CombinedData);

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