gpt4 book ai didi

Javascript 如果键重复则替换项目并排序并删除除最后 2 项之外的项目

转载 作者:行者123 更新时间:2023-12-02 23:41:31 27 4
gpt4 key购买 nike

我有如下所示的数组,我想按键对其进行排序,然后删除除最后 2 项之外的所有内容并删除剩余的内容。

var status = new Array();
status.push({key: 'BOB', value: 10});
status.push({key: 'TOM', value: 3});
status.push({key: 'ROB', value: 22});
status.push({key: 'JON', value: 7});

如果我再次使用重复的键按下下面,例如:

status.push({key: 'BOB', value: 20});

我需要以下输出,我如何在 javascript 中实现这一点。

[
{
"key": "BOB",
"value": 20
},
{
"key": "TOM",
"value": 3
},
{
"key": "ROB",
"value": 22
},
{
"key": "JON",
"value": 7
}
]

注意:稍后我需要按键对其进行排序。

编辑:如果我有这样的对象,我如何按键排序?并仅获取最后 2 项并删除剩余项。

var status = new Object();
status['BOB'] = 10
status['TOM'] = 3
status['ROB'] = 22
status['JON'] = 7

最佳答案

我会使用Map而不是数组或对象。 map 就像物体 but with some important differences .

// initialize the map
var stats = new Map([['BOB',10],['TOM',3],['ROB',22],['JON',7]]);
// set a specific key's value
stats.set('BOB', 20);
// sort by key
var keys = Array.from(stats.keys());
keys.sort();
// get the last two
keys = keys.slice(-2);
// map the remaining keys to the desired structure
var result = keys.map(key => {
return {
key: key,
value: stats.get(key)
};
});
console.log(result);

关于Javascript 如果键重复则替换项目并排序并删除除最后 2 项之外的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56048715/

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