Подтвердить что ты не робот

Javascript: сортировать многомерный массив

После создания многодискового массива, подобного этому, как его сортировать?

Предполагается, что "маркеры" уже определены:

var location = [];
for (var i = 0; i < markers.length; i++) {
  location[i] = {};
  location[i]["distance"] = "5";
  location[i]["name"] = "foo";
  location[i]["detail"] = "something";
}

В приведенном выше примере мне нужно отсортировать его по "расстоянию". Я видел другие вопросы по сортировке массивов и многомерным массивам, но никто не работает для этого.

4b9b3361

Ответ 1

location.sort(function(a,b) {

  // assuming distance is always a valid integer
  return parseInt(a.distance,10) - parseInt(b.distance,10);

});

javascript array.sort метод имеет необязательный параметр, который является ссылкой функции для пользовательского сравнения. значения возврата >0 означают b во-первых, 0 означает a и b равны, а <0 означает a.

Ответ 2

Вы пробовали это?

location.sort(function(a,b) {
    return a.distance - b.distance;
});

Ответ 3

Обе функции сортировки, опубликованные до сих пор, должны работать, но ваша основная проблема будет использовать location как переменную, поскольку она уже определена системой.