javascript - 在javascript中找到具有公共(public)键的哈希数组的最大值

标签 javascript arrays angularjs hash highest

我目前有一个包含哈希数组的 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/

相关文章:

javascript - mongoDB 中的嵌套对象文本搜索

javascript - 生成多个具有不同条件的数组

java - 如何将字节数组转换为 Int 数组

html - 在保存到数据库之前在 AngularJS 中加密密码

javascript - 没有 json 数据

javascript - 如何在移动应用程序中显示 WP 帖子中的媒体(视频)

javascript - Django CSRF 检查 JavaScript post 请求(如表单提交)失败

javascript - 阻止表单提交,直到 recaptcha v3 完成加载

javascript - 如何更新 Vuex 中的状态数组?

java - java中比较数组元素