请找到以下数组 JSON 对象。
points:[{x:1, YValues:[34,45,56]}, {x:5, YValues:[20,12,30]}, {x:8, YValues:[12,13]}]
我想找到最大值X
并分别找到最大值YValues
。
我不希望 for 循环找到最大值。期望以简单的方式从JSON 对象中找到最大值X
和最大值。YValues
points
是否可以使用Math.max
或任何自定义功能?
谢谢,湿婆
请找到以下数组 JSON 对象。
points:[{x:1, YValues:[34,45,56]}, {x:5, YValues:[20,12,30]}, {x:8, YValues:[12,13]}]
我想找到最大值X
并分别找到最大值YValues
。
我不希望 for 循环找到最大值。期望以简单的方式从JSON 对象中找到最大值X
和最大值。YValues
points
是否可以使用Math.max
或任何自定义功能?
谢谢,湿婆
像这样的东西?
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})));
我使用 javascript 1.8 Arrayreduce
方法制作了灵魂。请注意,它仅适用于现代浏览器
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 );