Skip to content
Grigoriev Oleg edited this page Mar 24, 2013 · 1 revision

go.Lang.sortBy(): сортировка списка объектов по критерию

sortBy(items, criterion [, context = global [, reverse = false])

  • items {Array} - исходный список объектов (не изменяется).
  • criterion {(Function|String)} - критерий сортировки. Имя поля или функция, формирующая критерий для каждого объекта.
  • context {Object} - контекст для вызова criterion.
  • reverse {Boolean} - обратный порядок сортировки.
  • :return {Array} - отсортированный список.

Например, есть список точек:

var points = [
    {'x': 5, 'y': 2},
    {'x': 3, 'y': 4},
    {'x': 2, 'y': -1},
    {'x': -1, 'y': -23}
];

Отсортировать по возрастанию горизонтальной координаты:

go.Lang.sortBy(points, "x");

Или по убыванию вертикальной:

go.Lang.sortBy(points, "y", null, true);

Или по дальности от центра координат (корень из суммы квадратов):

go.Lang.sortBy(points, function (item) {return item.x * item.x + item.y * item.y; });

criterion - функция

Если для criterion указана функция, она вызывается в контексте context и получает следующие аргументы:

  • item {Object} - элемент списка, для которого требуется сформировать критерий.
  • i {Number} - индекс в исходном массиве.
  • items {Array} - весь исходный массив.
Clone this wiki locally