Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sorting using sortBy method not working in underscore

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?

like image 509
ArunBabuVijayanath Avatar asked Mar 09 '26 18:03

ArunBabuVijayanath


1 Answers

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

like image 151
ArunBabuVijayanath Avatar answered Mar 12 '26 06:03

ArunBabuVijayanath