Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

239
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda