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

171
Views
Cree una matriz de objetos basada en el primer valor como clave y el segundo valor como valor en javascript

Ejemplo de entrada:

 [{'size': '56 X 56 X 190', 'no_of_ups': 5}, {'size': '65 X 55 X 110', 'no_of_ups': 2}]

Salida correspondiente:

 [{'56 X 56 X 190': 5}, {'65 X 55 X 110': 2}]

¿Cómo creamos una matriz de Objeto a partir de la matriz de entrada de Objeto que tiene un número fijo de claves y creamos una nueva matriz de Objeto que tiene un valor determinado de clave como clave y un valor determinado de valor como valor de esa clave?

Básicamente, queremos transformar la matriz de entrada de Object en el valor de 'size' como clave y el valor de 'no_of_ups' como valor.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

(Si el orden de los argumentos parece extraño, es porque asumo [módulo lodash/fp ] Esta es la función que desea ejecutar en su argumento:

 f = _.compose(_.spread(_.zipObject), _.unzip, _.map(_.over(['size', 'no_of_ups'])));

Y aquí está en acción:

 arr = [{'size': '56 X 56 X 190', 'no_of_ups': 5}, {'size': '65 X 55 X 110', 'no_of_ups': 2}]; f = _.compose(_.spread(_.zipObject), _.unzip, _.map(_.over(['size', 'no_of_ups']))); console.log(f(arr))
 <script src="https://cdn.jsdelivr.net/g/lodash@4(lodash.min.js+lodash.fp.min.js)"></script>

Y aquí hay un poco de explicación:

  • _.map(_.over(['size', 'no_of_ups'])) ejecuta _.over(['size', 'no_of_ups']) en cada elemento,
    • y _.over(['size', 'no_of_ups']) simplemente elige 'size' y 'no_of_ups' del elemento y coloca los dos resultados en una matriz), por lo que obtiene una matriz de matrices, en este caso [["56 X 56 X 190", 5], ["65 X 55 X 110", 2]] ;
  • luego _.unzip transpone fundamentalmente la matriz de matrices, en este caso le da [["56 X 56 X 190", "65 X 55 X 110"], [5, 2]]
  • finalmente _.spread(_.zipObject) alimenta los dos arreglos internos como argumentos separados por comas a _.zipObject , que construye objetos a partir de los dos arreglos, usándolos como el arreglo de claves y el arreglo de valores, brindándole así el resultado final resultado.

Si realmente desea una matriz de objetos en lugar de un solo objeto, puede cambiar _.zipObject por _.zipWith((x,y) => ({[x]: y})) .

about 4 years ago · Juan Pablo Isaza Report

0

Input - [{'size': '56 X 56 X 190', 'no_of_ups': 5}, {'size': '65 X 55 X 110', 'no_of_ups': 2}] Input.forEach((val)=>{ j= {}; j[val[size]]=val[no_of_ups]; Output.push(j) })

;

about 4 years ago · Juan Pablo Isaza Report

0

Una de las formas más legibles de hacer esto probablemente sería en JavaScript normal.

 const output = input.map(({ size, no_of_ups }) => ({ [size]: no_of_ups }));

La expresión ({ size, no_of_ups }) => ({ [size]: no_of_ups }) puede ser un poco confusa, pero es solo una función de flecha normal.

({ size, no_of_ups }) define los argumentos. En este escenario, un solo objeto que desestructuraremos en size y no_of_ups .

({ [size]: no_of_ups }) es el valor de retorno de la función de flecha. Usaremos un nombre de propiedad calculado para establecer dinámicamente el valor de la clave y asignarle el valor de no_of_ups . La razón por la que el objeto está entre paréntesis es para decirle a JavaScript que estamos evaluando una expresión. Sin ellos, el motor de JavaScript asume que sigue un bloque de código.

 input.map(({ size, no_of_ups }) => { // <- without parentheses is assumed to be a codeblock return { [size]: no_of_ups }; });
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!