Skip to content Skip to sidebar Skip to footer

How Do We Customize The Grouping From Actual Array Of Objects In Angularjs

I have to create my customized grouping order based on standardID in the following array of objects: Actual Array: var test=[ {ID: '91',Name: 'sgtue', standardID: '1'},

Solution 1:

It's pure javascript and this will "sort" it your way, define your sort order in groupOrder variable:

var groupOrder = [1,3,201,2];
var testSorted = test.sort((a, b) => groupOrder.indexOf(parseInt(a.standardID))-groupOrder.indexOf(parseInt(b.standardID))); 

Fiddle:

https://jsfiddle.net/pLe44x1x/1/

Solution 2:

var test = [{
    ID: "91",
    Name: "sgtue",
    standardID: "1"
  },
  {
    ID: "41",
    Name: "asdfasdf",
    standardID: "2"
  },
  {
    ID: "5",
    Name: "credd",
    standardID: "2"
  },
  {
    ID: "2",
    Name: "dddawer",
    standardID: "2"
  },
  {
    ID: "2",
    Name: "dsfadf",
    standardID: "3"
  },
  {
    ID: "275",
    Name: "xcvcvc",
    standardID: "201"
  }
];


// parseInt used because of your input datatypevar sortOrder = [1,3,2,201];
var out = test.sort(function(a, b) {
    return sortOrder.indexOf(parseInt(a.standardID)) - sortOrder.indexOf(parseInt(b.standardID));
});

//sortedconsole.log(out)

Solution 3:

You can use JavaScript's sort function with your own criteria (map):

var test = [
  {ID: "91",Name: "sgtue", standardID: "1"},
  {ID: "41",Name: "asdfasdf", standardID: "2"},
  {ID: "5", Name: "credd", standardID: "2"},
  {ID: "2",Name: "dddawer", standardID: "2"},
  {ID: "2",Name: "dsfadf", standardID: "3"},
  {ID: "275", Name: "xcvcvc", standardID: "201"}
];
var myMap = {
            "1": 0,
            "3": 1,
            "2": 2
          };

test.sort((a, b) => myMap[a.standardID[0]] - myMap[b.standardID[0]]);
console.log(test);

Post a Comment for "How Do We Customize The Grouping From Actual Array Of Objects In Angularjs"