Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

235
Views
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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!