如何确定 JSON 对象数组中特定字段的最大值

how to determine the max value among a specific fields within an array of json objects?

本文关键字:字段 最大值 何确定 JSON 对象 数组      更新时间:2023-09-26

我有一个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}
    ];

我需要确定这些对象中"体积"字段的最大值。

正确的语法是什么?

尝试:

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);

您可以使用JavaScript函数"sort",它将函数作为参数。这个函数是你的排序函数,你可以像这样做你想做的事:

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);

您根据键"卷"

的属性对数组进行排序,然后选取第一个,即键"卷"值最大的数组。

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