In this article, we will see how to sort an array of objects by string property value in JavaScript. The array of objects can be sorted by using a user-defined function.
Here we have some common approaches to sorting an array of objects by string property value
- Using sort() with a custom compare function
- sorting by a user-defined function
- Using sort() with a comparison function and the toLowerCase() method
Approach 1: Using sort() with a custom compare function
In this approach, sort() is used with a custom compare function that utilizes localeCompare() to sort the array of objects by a string property value.
Example: In this example, we are using the above-explained approach.
Javascript
const GFG_object = [ { name: "Rahul" , age: 30 }, { name: "Aman" , age: 25 }, { name: "Deepak" , age: 35 } ]; let result = GFG_object.sort((a, b) => a.name.localeCompare(b.name)); console.log(result); |
[ { name: 'Aman', age: 25 }, { name: 'Deepak', age: 35 }, { name: 'Rahul', age: 30 } ]
Approach 2: sorting by a user-defined function.
This function compares the array of objects by its property. this example compares the l_name of objects and if l_name is small then it places into the left otherwise place it into the right position.
Example: In this example, we are using the above-explained approach.
Javascript
let GFG_Object = [ { f_name: 'Geeks' , l_name: '_2' }, { f_name: 'for' , l_name: '_1' }, { f_name: 'GFG' , l_name: '_3' } ]; GFG_Object.sort(compare); function compare(a, b) { if (a.l_name < b.l_name) return -1; if (a.l_name > b.l_name) return 1; return 0; } console.log(GFG_Object); |
[ { f_name: 'for', l_name: '_1' }, { f_name: 'Geeks', l_name: '_2' }, { f_name: 'GFG', l_name: '_3' } ]
Approach 3: Using sort() with a comparison function and the toLowerCase() method
In this approach, sort() with a comparison function and toLowerCase() to sort an array of objects case-insensitively based on a string property.
Example: In this example, we are using the above-explained approach.
Javascript
let GFG_Object = [ { f_name: 'Geeks' , l_name: '_2' }, { f_name: 'for' , l_name: '_1' }, { f_name: 'GFG' , l_name: '_3' } ]; GFG_Object.sort((a, b) => a.f_name.toLowerCase().localeCompare(b.f_name.toLowerCase())); console.log(GFG_Object); |
[ { f_name: 'for', l_name: '_1' }, { f_name: 'Geeks', l_name: '_2' }, { f_name: 'GFG', l_name: '_3' } ]