'Sorting keys of an object not working as expected- Javascript
I'm sorting the keys in the object:
My object:
data = {AAA: 1, BBB: 2, CCC: 55, VVV: 33, FFF:44}
I'm using the following code to sort:
Object.fromEntries(Object.entries(data).sort(([,v1], [,v2]) => +v2 - +v1))
however it outputs:
{CCC: 55, FFF: 44, VVV: 33, BBB: 2, AAA: 1}
I want to sort the keys in the object which should result:
{AAA: 1, BBB: 2, CCC: 55, FFF: 44, VVV: 33}
and if I try to change the sorting order, still gives results based on the count and not based on the key:
Object.fromEntries(Object.entries(data).sort(([,v1], [,v2]) => +v1 - +v2))
how can I make the above code work for both sorting value and sorting keys of an object?
Solution 1:[1]
const data = {
AAA: 1,
BBB: 2,
CCC: 55,
VVV: 33,
FFF: 44
};
console.log(Object.fromEntries(Object.entries(data).sort(([k1], [k2]) => k1.localeCompare(k2))));
Solution 2:[2]
Can do it using reduce.
const data = {
AAA: 1,
BBB: 2,
CCC: 55,
VVV: 33,
FFF: 44
};
const sorted = Object.keys(data)
.sort()
.reduce((obj, key) => {
obj[key] = data[key];
return obj;
}, {});
console.log(sorted);
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | Mohit kumar |
| Solution 2 | Parvesh Kumar |
