我目前有一个包含哈希数组的 JSON 文件,并且希望能够为包含最高“小数”值的每个匹配键“俱乐部”返回一个哈希数组(在我的 Angular 应用程序中使用 javascript)。
[
{"Bookmaker": "First", "Club": "Man City", "Decimal": 3.65},
{"Bookmaker": "First", "Club": "Man Utd", "Decimal": 4.5},
{"Bookmaker": "First", "Club": "Chelsea", "Decimal": 6.8}
{"Bookmaker": "Second", "Club": "Man City", "Decimal": 3.5},
{"Bookmaker": "Second", "Club": "Man Utd", "Decimal": 4},
{"Bookmaker": "Second", "Club": "Chelsea", "Decimal": 7}
]
在此示例中,返回的数组如下所示:
[
{"Bookmaker": "First", "Club": "Man City", "Decimal": 3.65},
{"Bookmaker": "First", "Club": "Man Utd", "Decimal": 4.5},
{"Bookmaker": "Second", "Club": "Chelsea", "Decimal": 7}
]
为每个“Club”返回具有最高“Decimal”值的哈希值。
最佳答案
如果在结果集中找到一个更细的值,您可以使用哈希表并更改结果。
var data = [{ "Bookmaker": "First", "Club": "Man City", "Decimal": 3.65 }, { "Bookmaker": "First", "Club": "Man Utd", "Decimal": 4.5 }, { "Bookmaker": "First", "Club": "Chelsea", "Decimal": 6.8 }, { "Bookmaker": "Second", "Club": "Man City", "Decimal": 3.5 }, { "Bookmaker": "Second", "Club": "Man Utd", "Decimal": 4 }, { "Bookmaker": "Second", "Club": "Chelsea", "Decimal": 7 }],
result = [];
data.forEach(function (a) {
if (a.Club in this) {
if (result[this[a.Club]].Decimal < a.Decimal) {
result[this[a.Club]] = a;
}
return;
}
this[a.Club] = result.push(a) - 1;
}, Object.create(null));
console.log(result);
关于javascript - 在javascript中找到具有公共(public)键的哈希数组的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38644743/