Мастер-классы по Javascript Екатеринбург Ростов-на-Дону Москва Узнать больше...
Содержание (скрыть) Содержание (показать)

Сортировка объектов

Создайте функцию ageSort(people), которая будет получать массив объектов и сортировать их по полю age.

Например:

var vasya = { name: "Вася Петров", age: 23 };
var masha = { name: "Маша Сидорова", age: 18 };
var vovochka = { name: "Вовочка", age: 6 };

var people = [ vasya , masha , vovochka ];

ageSort(people); // теперь people: [ vovochka , masha , vasya ]

Выведите массив после сортировки.

Решение
Решение

Для сортировки объявим вспомогательную функцию ageSort, которая сравнивает объекты по полю age:

function ageCompare(a, b) {
  if (a.age > b.age) return 1;
  if (a.age < b.age) return -1;
  return 0;
}

*!*
// Наша функция сортировки
function ageSort(people) {
  people.sort(ageCompare)
}
*/!*

// проверка
var vasya = { name: "Вася Петров", age: 23 };
var masha = { name: "Маша Сидорова", age: 18 };
var vovochka = { name: "Вовочка", age: 6 };

var people = [ vasya , masha , vovochka ];

ageSort(people)

// вывести
for(var i=0; i<people.length; i++) {
  alert(people[i].name)
}

Более короткий вариант

Функцию сравнения можно было бы сделать короче.
Альтернативный вариант сортировки:

people.sort(function(a,b) { return a.age - b.age; });

#195
Наверх

Реклама

Нашли опечатку?

Нашли опечатку на сайте? Что-то кажется странным?
Выделите соответствующий текст и нажмите Ctrl+Enter!

Последние Комментарии

Помоги другим!

Помоги другим узнать о хорошей статье!