I am trying to sort an array of objects using underscore sortBy method the json is as follows
[
{
"styleId": 91,
"styleName": "Style Label",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 1,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": true,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "real",
"createdDate": 1494217733790,
"modifiedBy": "superuser",
"modifiedDate": 1494388952450,
"rowVersion": "AAAAAAIC8ls="
},
{
"styleId": 69,
"styleName": "irtest",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 16,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": false,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": false,
"styleDesign": null,
"createdBy": "arun",
"createdDate": 1493288218843,
"modifiedBy": "real",
"modifiedDate": 1494062410107,
"rowVersion": "AAAAAAHZaDk="
},
{
"styleId": 21,
"styleName": "new style-copy",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 5,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": false,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "Nandita",
"createdDate": 1493186162607,
"modifiedBy": "Nandita",
"modifiedDate": 1493186173807,
"rowVersion": "AAAAAAEXEwI="
},
{
"styleId": 97,
"styleName": "style 1",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 1,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": true,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "real",
"createdDate": 1494646737753,
"modifiedBy": "real",
"modifiedDate": 1494647127567,
"rowVersion": "AAAAAAIxLKM="
}
]
This is my sample json I am trying to sort this json by the field styleName like`
var result = _.sortBy(ctrl.styles, function (o) { return o.styleName; });
Result am getting is as follows
[
{
"styleId": 21,
"styleName": "new style-copy",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 5,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": false,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "Nandita",
"createdDate": 1493186162607,
"modifiedBy": "Nandita",
"modifiedDate": 1493186173807,
"rowVersion": "AAAAAAEXEwI="
},
{
"styleId": 69,
"styleName": "irtest",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 16,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": false,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": false,
"styleDesign": null,
"createdBy": "arun",
"createdDate": 1493288218843,
"modifiedBy": "real",
"modifiedDate": 1494062410107,
"rowVersion": "AAAAAAHZaDk="
},
{
"styleId": 91,
"styleName": "Style Label",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 1,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": true,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "real",
"createdDate": 1494217733790,
"modifiedBy": "superuser",
"modifiedDate": 1494388952450,
"rowVersion": "AAAAAAIC8ls="
},
{
"styleId": 97,
"styleName": "style 1",
"dataSourceId": 1,
"dataSourceName": null,
"stationeryId": 1,
"stationeryName": null,
"styleType": 1,
"styleTypeName": "Labels",
"isActive": true,
"isPlainPaper": true,
"isSystemMaintained": false,
"isPublished": true,
"designerUrl": null,
"sourceStyleId": 0,
"rowIndicatorCode": 2,
"isDefault": null,
"hasElement": true,
"styleDesign": null,
"createdBy": "real",
"createdDate": 1494646737753,
"modifiedBy": "real",
"modifiedDate": 1494647127567,
"rowVersion": "AAAAAAIxLKM="
}
]
where ctrl.styles is the above JSON, Is there something am doing wrong?
var result = _.sortBy(ctrl.styles, function (a) { return a.styleName.toUpperCase(); });
The problem I was facing was the styleName where having different case, converting styleName to uppercase solved the problem. Yashar's answer also solved the issue
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With