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"