gpt4 book ai didi

javascript - 返回对象数组中具有最大值的键的最简单方法是什么?

转载 作者:行者123 更新时间:2023-11-28 11:14:42 24 4
gpt4 key购买 nike

我正在制作一个简单的 Angular 色扮演游戏,并尝试计算当 Angular 色升级时应该增加哪些属性。他们对每个属性都有一个潜在的限制,我想增加距离其潜力最远的属性。

我可以循环遍历每个属性,并从其潜在值中减去其当前值以获得差值。然后我可以将差异插入一个数组。结果如下:

[
{Strength: 5},
{Dexterity: 6},
{Constitution: 3},
{Wisdom: 4},
{Charisma: 8}
]

魅力是差异最大的键,那么我如何评估它并返回键的名称(而不是值本身)?

编辑:这是用于获取数组的逻辑:

let difference = [];
let key;
for (key in currentAttributes) {
difference.push({[key]: potentialAttributes[key] - currentAttributes[key]});
};

最佳答案

使用 Object.entries 进行简单归约

const items = [
{ Strength: 5 },
{ Dexterity: 6 },
{ Constitution: 3 },
{ Wisdom: 4 },
{ Charisma: 8 }
]

const biggest = items.reduce((biggest, current, ind) => {
const parts = Object.entries(current)[0] //RETURNS [KEY, VALUE]
return (!ind || parts[1] > biggest[1]) ? parts : biggest // IF FIRST OR BIGGER
}, null)
console.log(biggest[0]) // 0 = KEY, 1 = BIGGEST VALUE

您的数据模型对于带有对象的数组有点奇怪,更好的模型只是一个对象。

const items = {
Strength: 5,
Dexterity: 6,
Constitution: 3,
Wisdom: 4,
Charisma: 8
}

const biggest = Object.entries(items)
.reduce((biggest, current, ind) => {
const parts = current
return (!ind || parts[1] > biggest[1]) ? parts : biggest
}, null)

console.log(biggest[0])

关于javascript - 返回对象数组中具有最大值的键的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58289006/

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