javascript - 如何使用通配符从 JSON 对象中的任何属性获取最大值和最小值

标签 javascript json

我需要从与此类似的 JSON 对象中获取以 Count 结尾的所有属性的最大值和最小值。我希望得到的最大值为 18,最小值为 3。

我能够获取单个属性的最大值 ( Getting max value(s) in JSON array ),但无法获取以 Count 结尾的任何内容。

[
{Period: 01/2017, Alpha: 5, AlphaCount: 10, Bravo: 3, BravoCount: 7, Charlie: 9, CharlieCount: 3}
{Period: 02/2017, Alpha: 2, AlphaCount: 4, Bravo: 3, BravoCount: 6, Charlie: 9, CharlieCount: 13}
{Period: 03/2017, Alpha: 6, AlphaCount: 8, Bravo: 3, BravoCount: 12, Charlie: 9, CharlieCount: 18}
]

最佳答案

您可以循环遍历整个数组并获取每个对象的键,使用indexOf()检查键中是否有“Count”,然后检查它是否为最大值。像这样的东西:

var arr = [
{Period: 01/2017, Alpha: 5, AlphaCount: 10, Bravo: 3, BravoCount: 7, Charlie: 9, CharlieCount: 3},
{Period: 02/2017, Alpha: 2, AlphaCount: 4, Bravo: 3, BravoCount: 6, Charlie: 9, CharlieCount: 13},
{Period: 03/2017, Alpha: 6, AlphaCount: 8, Bravo: 3, BravoCount: 12, Charlie: 9, CharlieCount: 18}
];
var max = -1;
arr.forEach(function(ob){
   var keys = Object.keys(ob);
   keys.forEach(x => max = x.indexOf('Count')>=0 && ob[x] >max ? ob[x]:max);
})
console.log(max);

关于javascript - 如何使用通配符从 JSON 对象中的任何属性获取最大值和最小值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45740035/

相关文章:

java - 创建日记应用程序,但无法从 TextView 中获取要保存在 firebase 数据库中的文本

jquery - 创建 Python 代码来为 jQuery 数据表提供 json 数据

javascript - 如何使用 Redux 刷新 JWT token?

javascript - 通过防止框架破坏来阻止网页泄露

javascript - 如果日期匹配,则通过单个电子邮件发送所有行

javascript - 是否有一种 document.createElement 多个元素的简写方式?

javascript - TypeError : _user2. 默认不是构造函数 JS

javascript - 在 Webkit 中使用 JavaScript 解析本地 JSON 文件

javascript - 具有多个参数的 Angular 输入滤波器

java - 使用Retrofit进行JSON解析