snippetjavascriptCritical
Sort array by firstname (alphabetically) in JavaScript
Viewed 0 times
firstnamearraysortalphabeticallyjavascript
Problem
I got an array (see below for one object in the array) that I need to sort by firstname using JavaScript.
How can I do it?
How can I do it?
var user = {
bio: null,
email: "user@domain.example",
firstname: "Anna",
id: 318,
lastAvatar: null,
lastMessage: null,
lastname: "Nickson",
nickname: "anny"
};Solution
Suppose you have an array
It should return
In our case if two elements are
Example:
This code is going to work with any type.
Note that in "real life"™ you often want to ignore case, correctly sort diacritics, weird symbols like ß, etc. when you compare strings, so you may want to use
users. You may use users.sort and pass a function that takes two arguments and compare them (comparator)It should return
- something negative if first argument is less than second (should be placed before the second in resulting array)
- something positive if first argument is greater (should be placed after second one)
- 0 if those two elements are equal.
In our case if two elements are
a and b we want to compare a.firstname and b.firstnameExample:
users.sort(function(a, b){
if(a.firstname b.firstname) { return 1; }
return 0;
})This code is going to work with any type.
Note that in "real life"™ you often want to ignore case, correctly sort diacritics, weird symbols like ß, etc. when you compare strings, so you may want to use
localeCompare. See other answers for clarity.Code Snippets
users.sort(function(a, b){
if(a.firstname < b.firstname) { return -1; }
if(a.firstname > b.firstname) { return 1; }
return 0;
})Context
Stack Overflow Q#6712034, score: 1510
Revisions (0)
No revisions yet.