react example array sorting key lodash

sorting - example - lodash pluck



Lodash clasifica objetos por valores, sin perder la llave. (3)

Digamos que tengo un objeto:

{Derp: 17, Herp: 2, Asd: 5, Foo: 8, Qwe: 12}

Y necesito ordenarlo por valor. Lo que estoy buscando para obtener es:

{Derp: 17, Qwe: 12, Foo: 8, Asd: 5, Herp: 2}

Me gustaría usar lodash para ello. Cuando uso _.sortBy , no conserva las claves como nunca:

_.sortBy({Derp: 17, Herp: 2, Asd: 5, Foo: 8, Qwe: 12}).reverse(); // [17, 12, 8, 5, 2]

Demonios, incluso me conformaría con el conjunto de teclas, pero aún así ordenado por el valor en la entrada:

[''Derp'', ''Herp'', ''Foo'', ''Asd'', ''Qwe'']


Estaba luchando contra un problema similar y pude resolverlo haciendo algunas transformaciones con lodash. Para tu problema sería:

let doo = {Derp: 17, Herp: 2, Asd: 5, Foo: 8, Qwe: 12}; let foo = _.chain(doo) .map((val, key) => { return { name: key, count: val } }) .sortBy(''count'') .reverse() .keyBy(''name'') .mapValues(''count'') .value(); console.log(foo); // Derp: 17, Qwe: 12, Foo: 8, Asd: 5, Herp: 2 }


Esto funciono para mi

o = _.fromPairs(_.sortBy(_.toPairs(o), 1).reverse())

Aquí hay un ejemplo:

var o = { a: 2, c: 3, b: 1 }; o = _.fromPairs(_.sortBy(_.toPairs(o), 1).reverse()) console.log(o);

<script src="https://cdn.jsdelivr.net/lodash/4.17.4/lodash.min.js"></script>


Podrías intentarlo así,

_.mapValues(_.invert(_.invert(obj)),parseInt);

Objeto {Herp: 2, Asd: 5, Foo: 8, Qwe: 12, Derp: 17}

o

var obj = {Derp: 17, Herp: 2, Asd: 5, Foo: 8, Qwe: 12} var result = _.reduceRight(_.invert(_.invert(obj)), function(current, val, key){ current[key] = parseInt(val); return current; },{});

Objeto {Derp: 17, Qwe: 12, Foo: 8, Asd: 5, Herp: 2}

o utilizando métodos de cadena:

_.chain(obj).invert().invert().reduceRight(function(current, val, key){ current[key] = parseInt(val); return current; },{}).value()

Objeto {Derp: 17, Qwe: 12, Foo: 8, Asd: 5, Herp: 2}

Nota: Depende del navegador, por lo general, el orden de las propiedades del objeto no se garantiza en la mayoría de los casos.