Splitting arrays by a condition
JavaScript
Read fire tipBy 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 }
// ]