admin管理员组文章数量:1363220
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?
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?
-
1
a.x
is not defined, what are you trying to do exactly? – Musa Commented Feb 23, 2013 at 16:44 - possible duplicate of find max value of a child object – JJJ Commented Feb 23, 2013 at 16:45
- this is a coords system, i want to max X min X max Y and min Y with a simple code – Bendegúz Commented Feb 23, 2013 at 16:47
- Yes, and the duplicate shows how. – JJJ Commented Feb 23, 2013 at 16:50
1 Answer
Reset to default 9You 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 prised 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);
本文标签: javascriptMin and max in multidimensional arrayStack Overflow
版权声明:本文标题:javascript - Min and max in multidimensional array - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1743941314a2565614.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论