How to sort an array in JavaScript?

Published

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort

How to sort an array of numbers in JavaScript?

const items = [3, 12, 9, 1, -4];

// 🛑 Incorrect as it uses a string comparison
items.sort(); // [ -4, 1, 12, 3, 9 ]
items.sort((a, b) => a - b); // [ -4, 1, 3, 9, 12 ]

How to sort an array of strings in JavaScript?

const items = ["orange", "apple", "pear", "banana"];
items.sort(); // [ 'apple', 'banana', 'orange', 'pear' ]

How to sort an array of objects in JavaScript?

const items = [
  { name: "John" },
  { name: "Rebecca" },
  { name: "Albert" },
  { name: "Berto" },
];
items.sort((a, b) => {
  const aName = a.name.toLowerCase();
  const bName = b.name.toLowerCase();
  if (aName < bName) return -1;
  if (aName > bName) return 1;
  return 0;
}); // [ { name: 'Albert' }, { name: 'Berto' }, { name: 'John' }, { name: 'Rebecca' } ]

We use the compare function here and get the name from the object and lowercase the string with .toLowerCase() so that we are comparing consistently cased strings. If we didn’t do this, the sorting would not be accurate as comparing a capitalized string to a lower case string results in a different outcome.