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

189
Views
¿Cómo creo un nuevo objeto con la clave como valor de un objeto y el objeto como valor?

Mi pregunta es algo similar a esto.

Tengo un mapa con la clave como objectType1 y el valor como objectType1 | nulo.

 type ObjectType1 = { key:string , value:string } const newMap = new Map<ObjectType1, Array<ObjectType1>|null>([ [{key:'key1', value:'value1'},null], ]);

lo que quiero hacer aquí es que quiero un nuevo objeto que se parezca a:

 const newObject = { key1 : {key: 'key1', value:'value1'} }

Entonces, básicamente, el nuevo objeto debería poder hacer referencia al objeto. Si hago newObject.key1, debería poder obtener el objeto {key: 'key1', value:'value1'}

¿Cómo hago esto?

about 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Hay varias formas de iterar sobre las claves del Map y recopilarlas en un objeto. Aquí hay uno:

 const newObject = Array.from(newMap.keys()). reduce<Record<string, ObjectType1 | undefined>>( (acc, k) => ({ ...acc, [k.key]: k }), {} ); // const newObject: Record<string, ObjectType1 | undefined>

Aquí estamos usando el método keys() de Map para obtener un iterador iterable de todos los objetos clave. Esto no es una matriz, y dado que vamos a usar el método reduce() de Array para procesarlo, primero debemos convertirlo en una matriz a través del método Array.from() .

Entonces Array.from(newMap.keys()) ahora es una matriz de claves, y usamos reduce() para recopilarlas en un objeto. Hacemos esto comenzando con el objeto vacío {} y, para cada elemento k en la matriz de claves, distribuimos el objeto anterior en un nuevo objeto y agregamos una nueva propiedad con key k.key y value k .

Tenga en cuenta que el tipo de newObject es Record<string, ObjectType1 | undefined> , utilizando el tipo de utilidad Record<K, V> . Tiene una firma de índice de cadena; eso significa que el compilador de TypeScript no tiene idea de cuáles serán realmente las claves de newObject . Solo que, para cada clave en newObject , el valor de la propiedad será del tipo ObjectType1 | undefined (Esa posibilidad undefined está ahí, de modo que si escribe newObject.someKeyThatDoesNotActuallyExist el compilador no afirmará falsamente que hay una propiedad allí de tipo ObjectType1 . Tiene que manejar posibles propiedades undefined /faltantes).

Bien, vamos a probarlo:

 console.log(newObject.key1) // { "key": "key1", "value": "value1" }

¡Se ve bien!

Enlace del patio de recreo al código

about 4 years ago · Santiago Trujillo 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!