javascript - 在排序的 JavaScript 字典中查找前 3 个值条目?

标签 javascript node.js dictionary

我有一个已排序的字典,其中包含一定数量的条目:

dict = {B:3, A:2, C:2, D:1, E:0, F:0...}

是否有任何方法可以过滤字典以查找具有前 3 个最大值的条目,同时考虑重复值,以便输出为? :

output = {B:3, A:2, C:2, D:1}

感谢您的阅读..

最佳答案

您可以使用Set来计算不同的值并过滤有序条目以从中获取对象。

const
    object = { B: 3, A: 2, C: 2, D: 1, E: 0, F: 0 },
    result = Object.fromEntries(Object
        .entries(object)
        .sort(([, a], [, b]) => b - a)                         // just to be sure
        .filter((s => ([, v]) => s.add(v).size <= 3)(new Set))
    );
    
console.log(result);

关于javascript - 在排序的 JavaScript 字典中查找前 3 个值条目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70295308/

相关文章:

node.js - 如何高效地进行多次 MongoDB 旅行

javascript - 使用 http.request 时 Nodejs 性能如何扩展?

node.js - AngularJS - 服务器端渲染

c - FreeRadius字典加载

javascript - 如果 PreventDefault() 仅阻止默认浏览器操作,如何取消自定义事件?

javascript - 如何在 jsreport 中包含助手

javascript - karma.conf.js Uncaught ReferenceError : google no defined

javascript - 有没有创建 map 的快捷方法?

快速使用 map 设置属性

javascript - 随机时间激活类的每个实例的函数