I have an array of objects in JavaScript, and I want to sort them based on a specific property of the objects. For example, I have an array of books, and each book object has properties like ‘title’, ‘author’, and ‘publicationYear’. How can I sort this array of book objects alphabetically by the ‘title’ property?
Here’s a simplified version of the array:
const books = [
{ title: 'The Great Gatsby', author: 'F. Scott Fitzgerald', publicationYear: 1925 },
{ title: 'To Kill a Mockingbird', author: 'Harper Lee', publicationYear: 1960 },
{ title: '1984', author: 'George Orwell', publicationYear: 1949 }
];
This array should be sorted ascendingly using the ‘title’ parameter. I attempted to discover the answer by going to several sites like Scaler, but I was unable to locate the solution. Could you supply a JavaScript code sample that explains how to do this sorting and explains any key ideas or functions utilized in the code? I appreciate your help.
Well, here is a simple example of sorting.
const books = [
{ title: 'The Great Gatsby', author: 'F. Scott Fitzgerald', publicationYear: 1925 },
{ title: 'To Kill a Mockingbird', author: 'Harper Lee', publicationYear: 1960 },
{ title: '1984', author: 'George Orwell', publicationYear: 1949 }
];
// Sort the books array based on the 'title' property
books.sort((a, b) => {
const titleA = a.title.toLowerCase(); // Convert titles to lowercase for case-insensitive sorting
const titleB = b.title.toLowerCase();
if (titleA < titleB) {
return -1; // 'a' should come before 'b'
} else if (titleA > titleB) {
return 1; // 'b' should come before 'a'
} else {
return 0; // Titles are equal, no change in order
}
});
// Now, the books array is sorted alphabetically by title
console.log(books);
Thanks
1 Like
A one liner…
books.sort((a, b) => a.title.toLowerCase() < b.title.toLowerCase() ? -1 : 1)
1 Like