如何在JSON数组中找到最大值,该数组也包含一些JSON数组

时间:2013-06-08 06:45:57

标签: javascript jquery

请找到以下数组JSON对象。

points:[{x:1, YValues:[34,45,56]}, {x:5, YValues:[20,12,30]}, {x:8, YValues:[12,13]}]

我想找到X的最大值,并分别找到YValues的最大值。

我不希望循环找到最大值。期望以简单的方式从X JSON对象中找到YValues的最大值和points的最大值。

是否可以使用Math.max或任何自定义功能?

谢谢, 希瓦

2 个答案:

答案 0 :(得分:2)

这样的东西?

Math.max.apply(0,points.map(function(v){return v.x}));

还是一个循环,但它很简洁。

以下是YValues的操作方法。虽然很长:

Math.max.apply(0,[].concat.apply([],arr.map(function(v){return v.YValues})));

答案 1 :(得分:1)

我使用javascript 1.8 Array reduce方法制作了灵魂。请注意,它仅适用于现代浏览器

var max = yourObj.points.reduce( function ( a, b ){
    a.x = Math.max.apply( 0, [a.x,b.x] ) ;
    a.y = Math.max.apply( 0, [].concat( [ a.y ], b.YValues ) )
    return a;
}, { x :0, y :0 } );

max变量包含最大x和y

console.log( max.x );
console.log( max.y );