Sorting arrays by object properties

By passing a function when sorting an array, we can sort objects by different properties.

const people = [
  { name: 'Lisa',   age: 8  },
  { name: 'Maggie', age: 1  },
  { name: 'Homer',  age: 34 },
  { name: 'Bart',   age: 10 },
  { name: 'Marge',  age: 33 }
]

// sort `people` by name (alphabetically)
people.sort((a, b) => a.name > b.name)
// ⇒ [
//     { name: 'Bart',   age: 10 },
//     { name: 'Homer',  age: 34 },
//     { name: 'Lisa',   age: 8  },
//     { name: 'Maggie', age: 1  },
//     { name: 'Marge',  age: 33 }
//   ]

// sort `people` by age (from oldest to youngest)
people.sort((a, b) => b.age - a.age)
// ⇒ [
//     { name: 'Homer',  age: 34 },
//     { name: 'Marge',  age: 33 },
//     { name: 'Bart',   age: 10 },
//     { name: 'Lisa',   age: 8  },
//     { name: 'Maggie', age: 1  }
//   ]

// sort `people` by name (from longest to shortest)
people.sort((a, b) => a.name.length - b.name.length)
// ⇒ [
//     { name: 'Bart',   age: 10 },
//     { name: 'Lisa',   age: 8  },
//     { name: 'Homer',  age: 34 },
//     { name: 'Marge',  age: 33 },
//     { name: 'Maggie', age: 1  }
//   ]

More fire tips

Read all fire tips →