sort array of objects in js code example

Example 1: sort array of object js

const books = [
  {id: 1, name: 'The Lord of the Rings'},
  {id: 2, name: 'A Tale of Two Cities'},
  {id: 3, name: 'Don Quixote'},
  {id: 4, name: 'The Hobbit'}
]

books.sort((a,b) => (a.name > b.name) ? 1 : ((b.name > a.name) ? -1 : 0));

Example 2: javascript sort array with objects

var array = [
  {name: "John", age: 34},
  {name: "Peter", age: 54},
  {name: "Jake", age: 25}
];

array.sort(function(a, b) {
  return a.age - b.age;
}); // Sort youngest first

Example 3: sort array of objects by string property value

function compareFirstNames( a, b ) {
  if ( a.first_name < b.first_name ){
    return -1;
  }
  if ( a.first_name > b.first_name ){
    return 1;
  }
  return 0;
}

var people =[
    {"first_name":"Carol", "age":29},
    {"first_name":"Anna", "age":32},
    {"first_name":"Bob", "age":32}
];

people.sort( compareFirstNames ); //people is now sorted by first name from a-z

Example 4: js sort array of objects

const drinks1 = [
	{name: 'lemonade', price: 90}, 
	{name: 'lime', price: 432}, 
	{name: 'peach', price: 23}
];

function sortDrinkByPrice(drinks) {
	return drinks.sort((a, b) => a.price - b.price);
}

Example 5: javascript sort array of objects

// Handles mix-cased strings and numbers with option for setting order
const sortObjectArray = ({ arr, field, order = 'desc' }) => {
   arr.sort(function(a, b) {
      const fieldA = typeof a[field] === 'string' ? a[field].toLowerCase() : a[field]
      const fieldB = typeof b[field] === 'string' ? b[field].toLowerCase() : b[field]

      let result
      if (order === 'desc') {
         result = fieldA > fieldB ? 1 : -1
      } else {
         result = fieldA < fieldB ? 1 : -1
      }
      return result
   })
   return arr
}

let arr = [
  {name: "John", age: 34},
  {name: "Peter", age: 54},
  {name: "jake", age: 25}
]

let arr2 = sortObjectArray({ arr, field: 'name'})
console.log(arr2)
/*
[
{ age: 25, name: "jake"}, 
{ age: 34, name: "John" }, 
{ age: 54, name: "Peter" }
]
*/

let arr3 = sortObjectArray({ arr, field: 'age', order: 'asc' })
console.log(arr3)
/*
[
{ age: 54, name: "Peter" },
{ age: 34, name: "John" }, 
{ age: 25, name: "jake"}
]
*/