Mastering Lodash SortBy: Sorting Arrays and Objects in JavaScript

Lodash Sort By

What is Lodash SortBy?

Lodash Sort By is a method in the Lodash library that allows you to sort arrays and objects in JavaScript. It takes two arguments: the array or object to sort, and the property to sort by. You can also pass a custom function as the second argument to sort by a custom criteria.

Sorting Arrays with Lodash SortBy

To sort an array with Lodash Sort By, you can pass the array and the property to sort by as arguments. For example:

const array = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
const sortedArray = _.sortBy(array, ['name']);
console.log(sortedArray);
// Output: [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]

Sorting Objects with Lodash SortBy

To sort an object with Lodash Sort By, you need to convert it to an array first, sort the array, and then convert it back to an object. For example:

const object = { john: { age: 30 }, jane: { age: 25 } };
const sortedObject = _.fromPairs(_.sortBy(_.toPairs(object), [1]));
console.log(sortedObject);
// Output: { jane: { age: 25 }, john: { age: 30 } }

Sorting by Name, Property, Value, and Date

You can sort by name, property, value, and date with Lodash Sort By. For example:

const array = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
const sortedArray = _.sortBy(array, ['name', 'age']);
console.log(sortedArray);
// Output: [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]

const array = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
const sortedArray = _.sortBy(array, [function(item) { return item.age * -1 }]);
console.log(sortedArray);
// Output: [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }]

const array = [{ name: 'John', date: '2021-01-01' }, { name: 'Jane', date: '2021-01-02' }];
const sortedArray = _.sortBy(array, [function(item) { return new Date(item.date).getTime() }]);
console.log(sortedArray);
// Output: [{ name: 'John', date: '2021-01-01' }, { name: 'Jane', date: '2021-01-02' }]

Using Functions with Lodash SortBy

You can use functions with Lodash Sort By to sort by custom criteria. For example:

const array = [{ name: 'John', age: 30 }, { name: 'Jane', age: 25 }];
const sortedArray = _.sortBy(array, [function(item) { return item.name.length }]);
console.log(sortedArray);
// Output: [{ name: 'Jane', age: 25 }, { name: 'John', age: 30 }]

Examples of Lodash SortBy in Action

Here are some examples of Lodash Sort By in action:

  • Sorting an array of objects by name: _.sortBy(array, ['name'])

  • Sorting an array of objects by age in descending order: _.sortBy(array, ['age', 'desc'])

  • Sorting an array of objects by a custom function: _.sortBy(array, [function(item) { return item.name.length }])

Lodash SortBy - Best Practices

Here are some best practices for using Lodash Sort By:

  • Use Lodash Sort By only when necessary.

  • Avoid sorting large arrays or objects, as it can be slow.

  • Test your code thoroughly to ensure it works as expected.

Sources

Lodash website

Related articles

Ruslan Osipov
Written by author: Ruslan Osipov