2016-03-03 33 views
0

我有JSON对象的数组:如何确定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} 
    ]; 

我需要确定的“体积”字段的这些对象之间的最大值。

这是什么适当的语法?

回答

2

尝试:

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

0

您可以使用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);

你解决你的钥匙“体积”的属性数组,你拿第一个,一个这对关键的“音量”具有最大的价值。

data.slice(0)是一个在JavaScript中克隆数组的调整,所以你不会修改你的初始数组,如果你不在意你可以删除slice(0)

相关问题