Я пытаюсь отсортировать мой locations
массив из коротких до наибольшего расстояния с помощью следующего кода:Jquery- обращающиеся элементы на ассоциативно в индексированном массиве
for(var i=0; i<locations.length;i++)
{
var swapped = false;
for(var j=locations.length; j>i+1;j--)
{
if (locations[j]['distance'] < locations[j-1]['distance'])
{
var temp = locations[j-1];
locations[j-1]=locations[j];
locations[j]=temp;
swapped = true;
}
}
if(!swapped)
break;
}
Когда я попытался запустить программу, я получаю следующее сообщение об ошибке в Firebug:
locations[j] is undefined
Я console.logged массива месторасположения и это то, что он lloks как:
[Object { id="1", marker=U, more...}, Object { id="4", marker=U, more...}, Object { id="6", marker=U, more...}, Object { id="3", marker=U, more...}, Object { id="2", marker=U, more...}, Object { id="5", marker=U, more...}]
Есть ли способ численно индексировать объекты, сохраняя при этом данные объектов, ассоциативно проиндексированные?
Или есть способ получить доступ к элементу ith + 1 или ith-1, если у меня есть возможность использовать this.distance в цикле foreach?
Запишите цикл для (var j = locations.length-1; j> i; j--) –