我需要从与此类似的 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/