Function orderBy

  • This method is like sortBy except that it allows specifying the sort orders of the iteratees to sort by. If orders is unspecified, all values are sorted in ascending order. Otherwise, specify an order of "desc" for descending or "asc" for ascending sort order of corresponding values. You may also specify a compare function for an order.

    Type Parameters

    • T

    • T2

    Parameters

    • collection: Collection<T>

      The collection to iterate over.

    • iteratees: ArrayAble<KeyIteratee | CollectionIteratee<T, T2>>

      The iteratees to sort by.

    • orders: ArrayAble<Order<T2>>

      The sort orders of iteratees.

    • Optional guard: any
      Optional

    Returns T[]

    Array Returns the new sorted array.

    Since

    5.10.0

    See

    [[reverse]]

    Example

    const users = [
    { 'user': 'fred', 'age': 48 },
    { 'user': 'barney', 'age': 34 },
    { 'user': 'fred', 'age': 40 },
    { 'user': 'barney', 'age': 36 }
    ]

    // Sort by `user` in ascending order and by `age` in descending order.
    orderBy(users, ['user', 'age'], ['asc', 'desc'])
    // => objects for [['barney', 36], ['barney', 34], ['fred', 48], ['fred', 40]]

    // Sort by `user` then by `age` using custom compare functions for each
    orderBy(users, ['user', 'age'], [
    (a, b) => a.localeCompare(b, 'de', { sensitivity: 'base' }),
    (a, b) => a - b,
    ])