【问题标题】:How to get the three key/value pairs with the lowest value from an object?如何从对象中获取三个值最低的键/值对?
【发布时间】:2022-01-25 11:15:07
【问题描述】:

我有一个对象如下:

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

我想获取前 3 个最小的键值对,这样我的输出将是:

Peru: 1
Colombia: 2
Argentina: 5

【问题讨论】:

标签: javascript object


【解决方案1】:

只需获取Object.entries 并根据它们的值按升序对它们进行排序,然后按您喜欢的格式打印前三个项目。

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]);
}

【讨论】:

    【解决方案2】:
    function getRange(obj, count) {
      return Object.entries(obj)
        .sort(([, prev], [, next]) => a - b)
        .slice(0, count)
        .reduce(
          (result, [key]) => ({
            ...result,
            [key]: obj[key],
          }),
        {},
      );
    }
    

    【讨论】:

    • 您可以通过使用以下方法重建对象来简化此操作:return Object.fromEntries(Object.entries(obj).sort(...).slice(...))
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    相关资源
    最近更新 更多