如何将Math.max与对象数组一起使用?

dou*_*Ort 6 javascript

我想选择一个对象数组中的最大数字,所以例如,我想获得x拥有最大数字的属性(在这个例子中,maximum应该是200):

var myArr = [{x:100,y:200},{x:200,y:500}];

//does not work:
var maximum = Math.max.apply(Math,myArr.x);
Run Code Online (Sandbox Code Playgroud)

Poi*_*nty 17

您必须自己从对象中提取属性:

var maximum = Math.max.apply(Math, myArr.map(function(o) { return o.x; }));
Run Code Online (Sandbox Code Playgroud)

这用于.map()迭代数组的元素并返回"x"属性的值.然后将结果数组作为参数传递给Math.max().


小智 7

多一种方式,我觉得更漂亮。通过使用传播:

Math.max(...array.map((i) => i.x));
Run Code Online (Sandbox Code Playgroud)