Min and max in multidimensional array

arrays, javascript

Solution

You had the right idea with `.apply` but you need to pass a collection of the `x` values.

var xVals = a.map(function(obj) { return obj.x; });
var min = Math.min.apply(null, xVals);

The `.map()` method makes a new Array comprised of whatever you returned in each iteration.

[10, 20, 30, 10]

Then passing the Array as the second argument to `.apply` will distribute the members of the Array as individual arguments. So it's as though you did this:

Math.min(10, 20, 30, 10) // 10

But since you need to `.map()`, you might as well skip the `Math.min`, and just use `.reduce` instead.

var min = a.reduce(function(min, obj) { 
                      return obj.x < min ? obj.x : min; 
                   }, Infinity);

Problem

My array is: ``` var a = new Array(); a[0] = {x: 10,y: 10}; a[1] = {x: 20,y: 50}; a[2] = {x: 30,y: 20}; a[3] = {x: 10,y: 10}; ``` `var min = Math.min.apply(null, a.x)` doesn't work. Some ideas?

Original source

Related problems