0

I have an array in JavaScript that looks like

[
   {
      "name":"a",
      "phoneNo":"1"
   },
   {
      "name":"X",
      "phoneNo":"3"
   },
   {
      "name":"A",
      "phoneNo":"2"
   },
   {
      "name":"b",
      "phoneNo":"4"
   },
   {
      "name":"c",
      "phoneNo":"5"
   },
   {
      "name":"D",
      "phoneNo":"6"
   }
]

and I want to sort it by the name value in each array, alphabetically. NOTE: all name will be converted to lowercase first. I am stuck with this problem and I tried alot to solve it myself and also tried some research but I did'nt found something. Help!!!

Rehan Shah
  • 1,505
  • 12
  • 28

2 Answers2

1

Using lodash, you can easily solve the problem: use Lodash to sort array of object by value

_.sortBy(myArray, o => o.name.toLowerCase())
ch271828n
  • 15,854
  • 5
  • 53
  • 88
1

Solution using JS

Reference here

const arr = [
   {
      "name":"a",
      "phoneNo":"1"
   },
   {
      "name":"X",
      "phoneNo":"3"
   },
   {
      "name":"A",
      "phoneNo":"2"
   },
   {
      "name":"b",
      "phoneNo":"4"
   },
   {
      "name":"c",
      "phoneNo":"5"
   },
   {
      "name":"D",
      "phoneNo":"6"
   }
]

console.log(arr.sort(function(a, b){
 var nameA=a.name.toLowerCase(), nameB=b.name.toLowerCase();
 if (nameA < nameB) //sort string ascending
  return -1;
 if (nameA > nameB)
  return 1;
 return 0; //default return value (no sorting)
}));
Naren Murali
  • 19,250
  • 3
  • 27
  • 54