gpt4 book ai didi

javascript - 按 N 个最高数值(键)过滤对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:02:18 24 4
gpt4 key购买 nike

演示对象:

var foo = {a:1, b:2, c:3, d:4, e:5, f:6, g:7}

想要的结果:(按值获取前 3 个键)

{e:5, f:6, g:7}

说明:

对于给定的键/值基本对象,您将如何获得前 3 个值,不仅是值,还有键? key 可以是任何东西。假设值是整数。

应该考虑性能。

最佳答案

您可以将属性提取到数组中,然后对数组进行排序:

var foo = {a:1, b:2, c:3, d:4, e:5, f:6, g:7}
var props = Object.keys(foo).map(function(key) {
return { key: key, value: this[key] };
}, foo);
props.sort(function(p1, p2) { return p2.value - p1.value; });
var topThree = props.slice(0, 3);

如果你想将结果作为一个对象,只需将它缩减为一个

var topThreeObj = props.slice(0, 3).reduce(function(obj, prop) {
obj[prop.key] = prop.value;
return obj;
}, {});

关于javascript - 按 N 个最高数值(键)过滤对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32302234/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com