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

131
Vistas
empujar el elemento de la matriz al objeto como valor

Quiero cambiar una matriz a un objeto como este:

 array = ["blue" , "txt2" , "red" ,"txt4" , "txt5" , "txt6" ,"txt7" , "txt8" , "txt9" ] pages = {"page1" :["blue","txt2", "red"] , "page2" : ["txt4", "txt5", "txt6"], "page3" : ["txt7" ,"txt8", "txt9"]

Cada clave en el objeto de pages debe tener un valor de matriz con 3 elementos de matriz (la última clave puede tener menos), por lo que, por ejemplo, si una matriz tiene 110 elementos, tendremos 37 pages (página 1, página 2, ..., página 37) y la página 37 tendrá 1 elementos.

Entonces quiero poner cada 3 elementos en una matriz como valor de una clave en el objeto de las pages

Pero no se como hacerlo.. Gracias por tu ayuda

about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Puede hacerlo iterando sobre la array y extrayendo 3 elementos de la array en cada iteración utilizando el método de splice , como este:

 let array = ["blue" , "txt2" , "red" ,"txt4" , "txt5" , "txt6" ,"txt7" , "txt8" , "txt9", "text10" ] let pages= {}, i= 1; while(array.length > 0){ pages[`page${i++}`] = array.splice(0,3) } console.log(pages)

de esta manera, pierde los valores originales en la array , si desea mantener los elementos en la array sin modificar, puede hacer una copia de sus datos originales como let copiedArray = [...array] y luego llamar al método de empalme en la copiedArray y también verifique la length de copiedArray en el while .

about 4 years ago · Santiago Trujillo Denunciar

0

Obtenga cada tercer índice y agregue todos los elementos desde ese punto hasta ese punto más tres (si ese índice está cerca del final, no dará error; solo agregará los elementos restantes):

 const initial = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']; let paginated = {}; let counter = 0 while (counter < initial.length) { paginated['page' + parseInt(counter / 3 + 1)] = initial.slice(counter, counter + 3); counter += 3; } console.log(paginated);

about 4 years ago · Santiago Trujillo Denunciar

0

Para una solución más configurable, puede buscar una función de utilidad de chunk para la división inicial de la matriz de entrada y luego asignarla como desee a su objeto de resultado (aquí usando Object.fromEntries y mapeando sobre la matriz fragmentada resultante para asignar 'página' claves basadas en el índice).

 function chunk(arr, chunkSize) { const result = []; for (let i = 0; i < arr.length; i += chunkSize) { result.push(arr.slice(i, i + chunkSize)); } return result; } const array = ['blue', 'txt2', 'red', 'txt4', 'txt5', 'txt6', 'txt7', 'txt8', 'txt9']; const result = Object.fromEntries( chunk(array, 3).map((chunk, index) => [`page${index + 1}`, chunk]) ); console.log(result);

ver: Dividir matriz en fragmentos para discusión.

about 4 years ago · Santiago Trujillo 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