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

70
Views
matriz de mapas de objetos basada en un conjunto de propiedades

Supongamos que tengo un objeto:

 let array = [ {a: 1, b: 5, c: 9}, {a: 2, b: 6, c: 10}, {a: 3, b: 7, c: 11}, {a: 4, b: 8, c: 12} ];

entonces tengo un diccionario:

 const columns = [ { key: 'a', value: 'a' }, { key: 'b', value: 'b' }, ]

Quiero filtrar las propiedades que no están definidas en las columnas.

Yo he tratado

 array.map((x) => ({"a": xa, "b": xb}))

¿Hay alguna forma de usar los datos definidos en las columnas en lugar de escribir manualmente todas las propiedades?

Salida deseada:

 [ { "a": 1, "b": 5 }, { "a": 2, "b": 6 }, { "a": 3, "b": 7 }, { "a": 4, "b": 8 } ]
about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Puede asignar entradas y obtener los nuevos objetos.

 let array = [{ a: 1, b: 5, c: 9 }, { a: 2, b: 6, c: 10 }, { a: 3, b: 7, c: 11 }, { a: 4, b: 8, c: 12 }], columns = [{ key: 'a', value: 'a' }, { key: 'b', value: 'b' }], keys = columns.map(({ key }) => key), result = array.map(o => Object.fromEntries(keys.map(k => [k, o[k]]))); console.log(result);
 .as-console-wrapper { max-height: 100% !important; top: 0; }

about 4 years ago · Juan Pablo Isaza Report

0

Podrías usar esto.

Esto usa solo una matriz para contener las columnas deseadas porque no entiendo por qué usaría un diccionario con la clave y el valor iguales.

 let array = [ { a: 1, b: 5, c: 9 }, { a: 2, b: 6, c: 10 }, { a: 3, b: 7, c: 11 }, { a: 4, b: 8, c: 12 }, ]; const desiredColumns = ["a", "b"]; const transformed = array.map(item => { const obj = {}; desiredColumns.forEach(col => { if(col in item){ obj[col] = item[col]; } }) return obj; }) console.log(array); console.log(transformed)

about 4 years ago · Juan Pablo Isaza Report

0

Otra forma un poco menos directa de usar map() y reduce() :

  1. Crea una matriz con todas las claves que mantendremos.
  2. Reducir la array para obtener el resultado deseado
    • Agregue la clave actual + valor si la clave keep la matriz

 const array = [{a: 1, b: 5, c: 9}, {a: 2, b: 6, c: 10}, {a: 3, b: 7, c: 11}, {a: 4, b: 8, c: 12} ]; const columns = [{ key: 'a', value: 'a' }, { key: 'b', value: 'b' }, ]; const toKeep = columns.map(({ key }) => key).flat(); const result = array.map(a => Object.keys(a) .reduce((prev, cur) => (toKeep.includes(cur)) ? { ...prev, [cur]: a[cur] } : prev, {}) ); console.log(result);

Resultado:

 [ { "a": 1, "b": 5 }, { "a": 2, "b": 6 }, { "a": 3, "b": 7 }, { "a": 4, "b": 8 } ]
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!