1

Possible Duplicate:
Sort array of objects

[ { name: 'jane', id:'3' }
  { name: 'zac', id: '5' }
  { name: 'amber', id: '2 }
]

How do I sort this alphabetically by name, ascending?

The result should be:

[ { name: 'amber', id: '2' }
  { name: 'jane', id:'3' }
  { name: 'zac', id: '5' }
]
Community
  • 1
  • 1
user847495
  • 9,831
  • 17
  • 45
  • 48

2 Answers2

2

Use Array.sort. You can pass it a custom function to use to compare objects. To compare strings, you can use String.localeCompare. Put it together, and you get this:

var data=[
    { name: 'jane',  id: 3 }
    { name: 'zac',   id: 5 }
    { name: 'amber', id: 2 }
];
console.log("Unsorted:", data);
data.sort(function(a, b) {
    return a.name.localeCompare(b.name);
});
console.log("Sorted:", data);
icktoofay
  • 126,289
  • 21
  • 250
  • 231
1
[{ name: 'jane',  id:'3' },
 { name: 'zac',   id: '5'},
 { name: 'amber', id: '2'}].sort(
    function (a,b) {
        return a.name.localeCompare(b.name)
    }
);
Pedro Silva
  • 4,672
  • 1
  • 19
  • 31