获取对象属性的最大值



我正在探索Javascript,但我仍然是新手。我想知道是否有可能从我拥有的对象中获取kw_req的最大值。

我可以循环遍历对象,将kw_req的值存储在另一个数组中,并执行Math.max(),但我想知道是否有更直接的方法,如减少数组或任何东西。

如有任何帮助,不胜感激。

let obj = [
{
"Jan" :{
active: "true",
kw_req: 1.8807145148137498,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
},
"Feb": {
active: "true",
kw_req: 4,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
},
"Mar": {
active: "true",
kw_req: 1,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
}
}
];

将对象的值映射到它们的kw_req并扩展到Math.max:

let obj=[{Jan:{active:"true",kw_req:1.8807145148137498,kw_to_maintain:22.568574177764997,kw_to_raise:68.38277975862793,month:"Feb",temperature:23,temperature_coeff:.671},Feb:{active:"true",kw_req:4,kw_to_maintain:22.568574177764997,kw_to_raise:68.38277975862793,month:"Feb",temperature:23,temperature_coeff:.671},Mar:{active:"true",kw_req:1,kw_to_maintain:22.568574177764997,kw_to_raise:68.38277975862793,month:"Feb",temperature:23,temperature_coeff:.671}}];

const max = Math.max(
...Object.values(obj[0])
.map(val => val.kw_req)
);
console.log(max);

由于您的obj值是一个对象数组,因此您需要将内部对象的每个值映射到它们的kw_req值,然后在使用扩展操作符将结果传递给Math.max之前将其扁平化:

let obj = [
{
"Jan" :{
active: "true",
kw_req: 1.8807145148137498,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
},
"Feb": {
active: "true",
kw_req: 4,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
},
"Mar": {
active: "true",
kw_req: 1,
kw_to_maintain: 22.568574177764997,
kw_to_raise: 68.38277975862793,
month: "Feb",
temperature: 23,
temperature_coeff: 0.671
}
}
];
const max_kw = Math.max(...obj.flatMap(o => Object.values(o).map(m => m.kw_req)));
console.log(max_kw)

最新更新