Показать сообщение отдельно
  #1 (permalink)  
Старый 07.11.2018, 23:37
Аспирант
Отправить личное сообщение для Marson Посмотреть профиль Найти все сообщения от Marson
 
Регистрация: 14.08.2018
Сообщений: 65

Обобщенная функция сортировки массива
Сделайте обобщенную функцию сортировки массива


var persons = [
{name: "Иван", age: 17},
{name: "Мария", age: 35},
{name: "Алексей", age: 73},
{name: "Яков", age: 12},
]

sort(persons, "age"); //сортирует по возрасту по возрастанию
sort(persons, "name", false); //сортирует по имени по убыванию
Функция позволяет отсортировать любой набор данных по имени поля (второй параметр). Третьим параметром идет необязательный Boolean, который в случае true делает сортировку по возрастанию, в случае false - по убыванию. По умолчанию (без третьего параметра) происходит сортировка по возрастанию.

function byField (field) {
return function (a, b) {
return a[field] > b[field] ? 1 : -1;
};
}
var users = [{
name: "Вася",
surname: 'Иванов',
age: 20
}, {
name: "Петя",
surname: 'Чапаев',
age: 25
}, {
name: "Маша",
surname: 'Медведева',
age: 18
}];
byField();

users.sort(byField('age'));
users.forEach(function(user) {
console.log( user.age);
});


Подскажите, здесь можно без метода sort() сделать?
Ответить с цитированием