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

207
Vistas
¿Cómo agregar elementos de matrices al final de la matriz?

Hay sourceArray y algunos additionalArray . Necesita additionalArray elementos de AdditionalArray al final de sourceArray . Y en el resultado sourceArray contiene todos los elementos (sin crear una nueva matriz). El problema es que el recuento de elementos de additionalArray puede ser de miles.

 // example push([], [1, 2, 3], [10, 20, 30]) // [1, 2, 3, 10, 20, 30] push(['a', 'b'], 'x', ['z', '0']) // ['a', 'b', 'x', 'z', '0']
 // my solution function push(sourceArray, ...additionalArray) { additionalArray.forEach((array) => { array = Array.isArray(array) ? array : [array]; if (array.length < 1000) { sourceArray.push.apply(sourceArray, array); } else { array.forEach((item) => sourceArray.push(item)); } }); return sourceArray; }

Mi pregunta, ¿hay una solución más elegante para esta tarea?

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

0

Puede encontrar que usar .flat() puede ayudarlo aquí. Si usa eso en additionalArray , puede luego distribuir ... esos elementos en una llamada a .push() como argumentos:

 const push = (source, ...rest) => { source.push(...rest.flat()); return source; } console.log(push([], [1, 2, 3], [10, 20, 30])) // [1, 2, 3, 10, 20, 30] console.log(push(['a', 'b'], 'x', ['z', '0'])) // ['a', 'b', 'x', 'z', '0']

Sin embargo, esto tiene una limitación en el sentido de que .push() solo puede aceptar una cierta cantidad de argumentos. Es posible que alcance el límite máximo de argumentos y esto puede arrojar si considera que su additionalArray puede ser grande. Usar un bucle for..of ayudaría con eso:

 const push = (source, ...rest) => { for(const item of rest.flat()) source.push(item) return source; } console.log(push([], [1, 2, 3], [10, 20, 30])) // [1, 2, 3, 10, 20, 30] console.log(push(['a', 'b'], 'x', ['z', '0'])) // ['a', 'b', 'x', 'z', '0']

about 4 years ago · Santiago Trujillo Denunciar

0

A partir de MDN , puede usar la sintaxis de distribución de matriz:

 let vegetables = ['parsnip', 'potato'] let moreVegs = ['celery', 'beetroot'] // Merge the second array into the first one vegetables.push(...moreVegs); console.log(vegetables) // ['parsnip', 'potato', 'celery', 'beetroot']
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