Javascript 在包含对象的数组中查找最小值和最大值
我有一个数组,里面有对象:Javascript 在包含对象的数组中查找最小值和最大值,javascript,arrays,object,max,min,Javascript,Arrays,Object,Max,Min,我有一个数组,里面有对象: var pts = [ { "X": 52.67528921580262, "Y": 8.373513221740723 }, { "X": 52.6759657545252, "Y": 8.374114036560059 }, { "X": 52.682574466310314, "Y": 8.37256908416748 }, { "X": 52.68356308524067, "Y": 8.373942375183105
var pts = [
{ "X": 52.67528921580262, "Y": 8.373513221740723 },
{ "X": 52.6759657545252, "Y": 8.374114036560059 },
{ "X": 52.682574466310314, "Y": 8.37256908416748 },
{ "X": 52.68356308524067, "Y": 8.373942375183105 },
{ "X": 52.68293869694087, "Y": 8.375487327575684 },
{ "X": 52.67685044320001, "Y": 8.376259803771973 },
{ "X": 52.6756535071859, "Y": 8.379607200622559 },
{ "X": 52.676017795531436, "Y": 8.382096290588379 },
{ "X": 52.68101344348877, "Y": 8.380722999572754 },
{ "X": 52.68351105322329, "Y": 8.383641242980957 },
{ "X": 52.68, "Y": 8.389 }
];
如何找到最小值,最大值代表X和最小值,最大值代表Y?您可以调用
Math.min
和Math.max
,传入一个只包含如下相关值的映射数组:
函数endProp(mathFunc、数组、属性){
返回数学[mathFunc].apply(数组,数组.map)(函数(项){
归还物品[财产];
}));
}
var maxY=endProp(“max”,pts,“Y”),//8.389
minY=endProp(“min”,pts,“Y”);//8.37256908416748
对数组进行排序可能是最简单的
array.sort(function minXToMaxX(a,b){
return a.x - b.x;
});
最小的
x
值位于array[0]
。最高的x
值位于array[array.length-1]
此代码工作正常。有关演示,请参见snippt
var-pts=[{
“X”:52.67528921580262,
“Y”:8.373513221740723
}, {
“X”:52.6759657545252,
“Y”:8.374114036560059
}, {
“X”:52.682574466310314,
“Y”:8.37256908416748
}, {
“X”:52.68356308524067,
“Y”:8.373942375183105
}, {
“X”:52.68293869694087,
“Y”:8.375487327575684
}, {
“X”:52.67685044320001,
“Y”:8.37625903771973
}, {
“X”:52.6756535071859,
“Y”:8.379607200622559
}, {
“X”:52.676017795531436,
“Y”:8.382096290588379
}, {
“X”:52.68101344348877,
“Y”:8.380722999572754
}, {
“X”:52.68351105322329,
“Y”:8.383641242980957
}, {
“X”:52.68,
“Y”:8.389
}];
var xobj=[];
var yobj=[];
var len=点长度;
对于(变量i=0;i值){
值=xobj[n];
}
}
//最低x值
var valuel=xobj[0];
对于(var n=1;nvalueY){
valueY=yobj[n];
}
}
//最低x值
var值=yobj[0];
对于(var n=1;n
Minx:
最大值:
米尼:
马克西:
是否尝试在数组上循环,并将值与{x/y}{min/max}的四个变量进行比较?如果您尝试过,这种方法的哪一部分会给您带来问题?将第一个对象的x和y值存储为x和y的最小值和最大值。然后循环遍历其余的对象。对于每个对象,将该对象x和y与x和y的最小值和最大值进行比较。如果您为x或y找到了新的最小值或最大值,请用它替换旧的最小值或最大值。