HiveBrain v1.2.0
Get Started
← Back to all entries
snippetjavascriptCritical

Sort array by firstname (alphabetically) in JavaScript

Submitted by: @import:stackoverflow-api··
0
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?

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 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.firstname

Example:

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.