@olya_097

Здравствуйте, можете описать функцию function byField(field) построчно, что в ней делается(пожалуйста)?

var users = [{
  name: "Вася",
  surname: 'Иванов',
  age: 20
}, {
  name: "Петя",
  surname: 'Чапаев',
  age: 25
}, {
  name: "Маша",
  surname: 'Медведева',
  age: 18
}];

function byField(field) {
    return function(a, b) {
      return a[field] > b[field] ? 1 : -1;
    }
  }

users.sort(byField('name'));
users.forEach(function(user) {
  alert( user.name );
});

users.sort(byField('age'));
users.forEach(function(user) {
  alert( user.name );
});
  • Вопрос задан
  • 273 просмотра
Решения вопроса 1
@Jumandjilos
function byField(field) // здесь выбираем, по какой переменной будем сравнивать(name, surname или age)
return function(a, b) // здесь выбираем два объекта для сравнения
return a[field] > b[field] ? 1 : -1; // здесь собственно сравниваем выбранное свойство от объекта а и от объета b, если первое больше, функция вернет значение 1, иначе вернет -1.

Вот так вот
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы