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

230
Vistas
mecanografiado: crea un objeto a partir de valores en una matriz

digamos que tengo una definición de modelo como esta.

 export interface Basicdata { materialnumber: number; type: string; materialclass: string; }

Además, tengo una matriz con valores que coinciden exactamente con el orden del modelo de datos básicos, es decir

["10003084", "S", "CLIP"]

Estoy buscando una forma de crear el objeto a partir de estos valores en la matriz. Lo que hice fue crear un objeto vacío y asignar los valores de matriz.

 const singleRow = rows[0]; const newBD: Basicdata = { materialnumber: 0, type: '', materialclass: '', } newBD.materialnumber = singleRow[0]; newBD.type = singleRow[1]; newBD.materialclass = singleRow[2];

Pero seguramente hay una forma mejor y más elegante de hacerlo, ¿no? Busqué en el mapa y reduje, pero pude encontrar una manera.

Gracias.

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

0

Como han mencionado otros, use una clase para que pueda usar el operador de propagación (técnicamente, podría crear una función que devuelva un objeto que cumpla con la interfaz Basicdata , pero debe usar una clase)

 class Basicdata { materialnumber: number; type: string; materialclass: string; constructor(materialnumber: string | number, type: string, materialclass: string, ...rest: any) { this.materialnumber = typeof materialnumber === "number" ? materialnumber : parseInt(materialnumber); this.type = type; this.materialclass = materialclass; } } const rows: [string, string, string][] = [ ["10003084", "S", "CLIP"], ["4324324", "B", "FOUR"], ["4444432", "C", "CORN"], ]; const singleRow = rows[0]; const newBD = new Basicdata(...singleRow) ;

Enlace del patio de recreo

about 4 years ago · Juan Pablo Isaza Denunciar

0

El problema con la siguiente solución es que se basa en que el orden de las propiedades del objeto sea coherente. ¿Es esto lo que estás buscando?

 const singleRow = [1, "2", "3"]; const newBD: Basicdata = { materialnumber: 0, type: "", materialclass: "", }; Object.keys(newBD).map((key, index) => { newBD[key] = singleRow[index] });

De lo contrario, podría crear una clase como han dicho otros, o puede crear una función auxiliar como esta, si le ayudara con su caso de uso.

 const addProps = (arr) => { const newObj = { materialnumber: arr[0], type: arr[1], materialclass: arr[2], }; return newObj }; addProps(singleRow)
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