2014-11-25 2 views
0

у меня есть массив с этими значениями (возвращенное из google.maps.LatLng):Наибольшее значение массива внутри массива

var polygon = [ 
{ k=50.882917044569744, B=6.003985404968262}, 
{ k=50.88289589175401, B=6.003938466310501}, 
{ k=50.882934389871465, B=6.003895550966263}, 
{ k=50.88295554266969, B=6.003943160176277} 
] 

И я хочу ключ от одного с наивысшим значением B так в этот случай было бы polygon[0] я не знаю, как именно массив сделан на самом деле, но console.log() возвращает мне это точно:

[df { k=50.882917044569744, B=6.003985404968262, toString=function(), meer...}, df { k=50.88289589175401, B=6.003938466310501, toString=function(), meer...}, df { k=50.882934389871465, B=6.003895550966263, toString=function(), meer...}, df { k=50.88295554266969, B=6.003943160176277, toString=function(), meer...}] 

И polygon[0] бы вернуть мне первый объект.

+0

Это ошибка синтаксиса; ключи и значения в объекте JavaScript должны быть связаны/назначены с помощью '{keyName: keyValue}'. –

ответ

1

Вы всегда можете перебирать массив с:

var polygon = [ 
    {k: 50.882917044569744, B: 6.003985404968262}, 
    {k: 50.88289589175401, B: 6.003938466310501}, 
    {k: 50.882934389871465, B: 6.003895550966263}, 
    {k: 50.88295554266969, B: 6.003943160176277} 
]; 
var i, p; 
for (i = 0; i < polygon.length; i++) { 
    if (p === undefined || p.k < polygon[i].k) { 
     p = polygon[i]; 
    } 
} 
console.log(p); 
+0

Спасибо, это именно то, что я искал! Моя цель состояла в том, чтобы получить верхнюю позицию многоугольника на картах google. Все, что мне нужно было изменить, это получить наивысшее значение k вместо B, но мне удалось изменить это благодаря большому количеству! –

+0

Лучшим способом было бы использовать объект 'LatLngBounds()', расширять его, добавляя все пути многоугольника и вызывать метод '.getBounds()'. –

+0

Ах, спасибо, я посмотрю! –

Смежные вопросы