【问题标题】:how to determine the max value among a specific fields within an array of json objects? [duplicate]如何确定 json 对象数组中特定字段的最大值? [复制]
【发布时间】:2016-03-03 17:33:58
【问题描述】:

我有一个 json 对象数组:

 var data = [
        {date: "12/27/2012", resolver: "Group 1", volume: 15, escalation: 90, bubble: 5},
        {date: "12/27/2012", resolver: "Group 2", volume: 85, escalation: 30,  bubble: 1},
        {date: "12/27/2012", resolver: "Group 3", volume: 130, escalation: 10,  bubble: 1},
        {date: "12/27/2012", resolver: "Group 4", volume: 240, escalation: 10,  bubble: 1}
    ];

我需要确定这些对象中“volume”字段的最大值。

什么是正确的语法?

【问题讨论】:

    标签: javascript arrays json


    【解决方案1】:

    尝试:

    var data = [
            {date: "12/27/2012", resolver: "Group 1", volume: 15, escalation: 90, bubble: 5},
            {date: "12/27/2012", resolver: "Group 2", volume: 85, escalation: 30,  bubble: 1},
            {date: "12/27/2012", resolver: "Group 3", volume: 130, escalation: 10,  bubble: 1},
            {date: "12/27/2012", resolver: "Group 4", volume: 240, escalation: 10,  bubble: 1}
        ];
    var max = Math.max.apply(Math, data.map(function(item) {
      return item.volume;
    }));
    alert(max);

    【讨论】:

      【解决方案2】:

      您可以使用以函数为参数的 JavaScript 函数“排序”。这个函数是你的排序函数,你可以做你想做的事情:

      var data = [
            {date: "12/27/2012", resolver: "Group 1", volume: 15, escalation: 90, bubble: 5},
            {date: "12/27/2012", resolver: "Group 2", volume: 85, escalation: 30,  bubble: 1},
            {date: "12/27/2012", resolver: "Group 3", volume: 130, escalation: 10,  bubble: 1},
            {date: "12/27/2012", resolver: "Group 4", volume: 240, escalation: 10,  bubble: 1}
          ];
      max = data.slice(0).sort(function(a, b) { return a.volume<b.volume })[0].volume;
      alert("The max volume is : "+max);

      您根据键“volume”的属性对数组进行排序,然后取第一个,即对键“volume”具有最大价值的数组。

      data.slice(0) 是在 JavaScript 中克隆数组的调整,因此您不会修改初始数组,如果您不关心可以删除 slice(0)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2021-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-01
        • 1970-01-01
        • 2017-04-14
        相关资源
        最近更新 更多