Home > Enterprise >  How to get the three key/value pairs with the lowest value from an object?
How to get the three key/value pairs with the lowest value from an object?

Time:12-26

I have an object as below:

var countryobj = {
    "Canada": 10,
    "Peru": 1,
    "Argentina": 5,
    "Colombia": 2,
    "Mexico": 8
};

I want to get the first 3 smallest key value pair so that my output would be:

Peru: 1
Colombia: 2
Argentina: 5

CodePudding user response:

Just get the Object.entries and sort them based on their value in ascending order, then print the first three items formatted how you like.

var countryobj = {
 "Canada": 10,
 "Peru": 1,
 "Argentina": 5,
 "Colombia": 2,
 "Mexico": 8
};

const entries = Object.entries(countryobj).sort(([, a], [, b]) => a - b);

for (let i = 0; i < 3; i  ) {
  console.log(entries[i][0]   ": "   entries[i][1]);
}

CodePudding user response:

function getRange(obj, count) {
  return Object.entries(obj)
    .sort(([, prev], [, next]) => a - b)
    .slice(0, count)
    .reduce(
      (result, [key]) => ({
        ...result,
        [key]: obj[key],
      }),
    {},
  );
}
  • Related