Задать вопрос
@olya_097

Что означает а,b,field после объвления массива объектов и зачем в функции byField мы делаем 2 ретурна,помимо того,что они возвращают значения?

Что означает а,b,field после объвления массива объектов и зачем в функции field мы делаем 2 ретурна,помимо того,что они возвращают значения

+тут еще есть ниже sort и forEach.Для чего они?sort я так понимаю метод сортировки?а forEach

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 );
});
  • Вопрос задан
  • 94 просмотра
Подписаться 2 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
Stalker_RED
@Stalker_RED
Я уже в третий раз отвечаю на этот вопрос
7N9bizW.png
там две функции, и у каждой по одному return-у

sort для соритровки, правильно. А forEach для перебора списка юзеров.
Ответ написан
@vitstr
Front-end developer
В стандартный метод массива sort передаётся функция обратного вызова, которая возвращается из функции byField при запуске и которая в замыкании "держит" значение field (возраст или имя в вашем случае).

forEach соотв. перебирает полученный массив и выводит алерт для каждого элемента.

По матчасти читаем:
1. Замыкания
2. Анонимные функции
3. Работа с массивами (стандартные методы).

Подойдет книга "Выразительный JavaScript" или курс Ильи Кантора.
Ответ написан
Ваш ответ на вопрос

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

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