Есть ли способ сортировки массива объектов на основе того, что в объекте в JavaScript? - PullRequest
2 голосов
/ 16 июня 2011

У меня есть массив объектов, и мне было интересно, если бы вы могли отсортировать массив по атрибуту в объекте?Вот пример того, что я имею в виду:

for (var i = 0; i < response.data.length; i++) {
    person[i] = {
        "name":response.data[i].name,
        "phone":response.data[i].phone
    };
    person[i].name.sort();
}

Я пытаюсь отсортировать массив по имени объекта.

Ответы [ 2 ]

8 голосов
/ 16 июня 2011
person.sort(function(a, b) {
  if (a.name < b.name) return -1;
  if (a.name > b.name) return 1;
  return 0;
});

sort принимает функцию компаратора в качестве необязательного параметра.

0 голосов
/ 16 июня 2011

Конечно. Объект массива имеет функцию сортировки, которая позволяет вам передать функцию, чтобы определить, как сравнивать объект.

//Passes in A and B, which are the objects in your array.
function sortName(a, b)
{
    return a.name <= b.name ? -1 : 1
           //return integer
           //negative number a is less than b
           //positive number b is less than a
           //zero a and b are equal
           //(My function doesn't ever return zero)
}

person.sort(sortName);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...