Skip to content

Instantly share code, notes, and snippets.

@IPRIT
Last active March 6, 2016 00:27
Show Gist options
  • Select an option

  • Save IPRIT/0c2819b15f2b129b08fc to your computer and use it in GitHub Desktop.

Select an option

Save IPRIT/0c2819b15f2b129b08fc to your computer and use it in GitHub Desktop.

Lesson 1

Task 1

Задание: Сортировка

У нас есть массив объектов:

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

Обычно сортировка по нужному полю происходит так:

// по полю name (Вася, Маша, Петя)
users.sort(function(a, b) {
  return a.name > b.name ? 1 : -1;
});

// по полю age  (Маша, Вася, Петя)
users.sort(function(a, b) {
  return a.age > b.age ? 1 : -1;
}); 

Нужно упростить до следующего:

users.sort(byField('name'));

users.forEach(function(user) {
  alert( user.name );
}); // Вася, Маша, Петя


users.sort(byField('age'));

users.forEach(function(user) {
  alert( user.name );
}); // Маша, Вася, Петя

То есть, вместо того, чтобы каждый раз писать в sort function... — будем использовать byField(...)

Напишите функцию byField(field), которую можно использовать в sort для сравнения объектов по полю field, чтобы пример выше заработал.

Решение должно быть в файле app.js.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment