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

167
Vistas
¿Puedo cambiar el tipo de acumulador en el método .reduce?

Actualmente estoy tratando de reducir una cadena a un número [], pero soy nuevo en mecanografiado y simplemente no pude encontrar la manera de escribir mi código para que el compilador de mecanografiado deje de quejarse...

Lo que estoy tratando de hacer:

 matString.split(/[\n ]/).reduce((acc, cur, index) => acc[index] = Number(cur));

Hasta ahora, he intentado escribirlo así, pero simplemente no funciona :(

 matString.split(/[\n ]/).reduce((acc: Array<number>, cur, index) => acc[index] = Number(cur)) as Array<number>;

Solo por contexto, este código recibe una matriz en el formato de una cadena y quiero convertirla en una matriz para poder trabajar con ella. Ya me encontré con este problema en diferentes circunstancias y tuve que solucionarlo, pero esta vez me gustaría entender cómo solucionarlo.

Además, si ayuda a explicar mejor mi problema, aquí hay una imagen de mi código seguida del error del compilador: imagen de código con error

Esta es parte de mi solución a este ejercicio sobre el ejercicio .

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

0

Si bien es posible , sería mucho más fácil evitar .reduce y simplemente asignar la cadena dividida a Number , sin necesidad de tipeo explícito:

 const result = matString .split(/[\n ]/) .map(Number);

Si tuvo que ir a la ruta .reduce , use genéricos para indicar el tipo de acumulador y recuerde devolver el acumulador al final de la devolución de llamada:

 const result = matString.split(/[\n ]/).reduce<Array<number>>((acc, cur, index) => { acc[index] = Number(cur); return acc; }, []);

Si la entrada se compone de una cadena que contiene caracteres numéricos, podría ser mejor hacer coincidir esos caracteres, en lugar de dividir en líneas nuevas y espacios:

 const result = matString .match(/\d+(?:\.\d+)?/g) // assuming there will always be at least one match .map(Number);
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