0

I have array of object as follows:

profData=[{"Details":{"CODE":"PAT4PAS","DESCRIPTION":"PASTIE 4N20 12 X 175G","LOCATION":"FREEZER","UNITS":"BOX","WAREHOUSE":"00","AVAILABLE":"15.0000","ON_HAND":"15.0000","BRAND":"4N20","PRICE1":"18.80","TAX_CODE1":"1","PROD_CLASS":"FROZ"}},{"Details":{"CODE":"PAT4PAS","DESCRIPTION":"PASTIE 4N20 12 X 175G","LOCATION":"FREEZER","UNITS":"BOX","WAREHOUSE":"00","AVAILABLE":"15.0000","ON_HAND":"15.0000","BRAND":"4N20","PRICE1":"18.80","TAX_CODE1":"1","PROD_CLASS":"FROZ"}},{"Details":{"CODE":"OMKM","DESCRIPTION":"SAUCE KETCHUP MANIS 620ML [6]","LOCATION":"DRY","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"187.0000","ON_HAND":"189.0000","BRAND":"ABC","PRICE1":"3.40","TAX_CODE1":"-1","PROD_CLASS":"DRY"}},{"Details":{"CODE":"BAXSAL","DESCRIPTION":"SALSA MEXICAN 2LTR [6]","LOCATION":"DRY","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"439.0000","ON_HAND":"445.0000","BRAND":"AGE","PRICE1":"9.20","TAX_CODE1":"-1","PROD_CLASS":"DRY"}},{"Details":{"CODE":"BAXSEMI","DESCRIPTION":"TOMATO SEMI DRIED 2KG [4]","LOCATION":"REFRIDGERATOR","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"55.0000","ON_HAND":"59.0000","BRAND":"AGE","PRICE1":"21.10","TAX_CODE1":"-1","PROD_CLASS":"CHILL"}},{"Details":{"CODE":"BAXSUN","DESCRIPTION":"TOMATO SUN DRIED 2KG [4]","LOCATION":"REFRIDGERATOR","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"39.0000","ON_HAND":"39.0000","BRAND":"AGE","PRICE1":"15.20","TAX_CODE1":"-1","PROD_CLASS":"CHILL"}},{"Details":{"CODE":"AMFBAM","DESCRIPTION":"FLOUR - AM SUP BAKERS 12.5KG","LOCATION":"REFRIDGERATOR","UNITS":"BAG","WAREHOUSE":"00","AVAILABLE":"259.0000","ON_HAND":"339.0000","BRAND":"ALLIE","PRICE1":"13.70","TAX_CODE1":"-1","PROD_CLASS":"CHILL"}},{"Details":{"CODE":"ALPKKC","DESCRIPTION":"KRANSKY - CHEESE 2.5KG [6]","LOCATION":"REFRIDGERATOR","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"27.0000","ON_HAND":"27.0000","BRAND":"ALP","PRICE1":"19.30","TAX_CODE1":"-1","PROD_CLASS":"CHILL"}},{"Details":{"CODE":"ABTDP","DESCRIPTION":"TOOTHPICK - DOUBLE POINT 1000","LOCATION":"DRY","UNITS":"EACH","WAREHOUSE":"00","AVAILABLE":"12.0000","ON_HAND":"12.0000","BRAND":"ALPEN","PRICE1":"1.60","TAX_CODE1":"1","PROD_CLASS":"DRY"}}]

I want sorted it with PROD_CLASS,

I have tried it with underscore js but didnt get solution.

var fullySorted = _.sortBy(profData, 'PROD_CLASS');

but it not sorting with PROD_CLASS.

can anyone help me please.

Thanks in advance.

1 Answer 1

2

As PROD_CLASS is not direct property of array element this will not work.

_.sortBy(profData, obj => obj.Details.PROD_CLASS);

This is same as

_.sortBy(arr, function(obj) {
    return obj.Details.PROD_CLASS;
});

var profData = [{
    "Details": {
        "CODE": "PAT4PAS",
        "DESCRIPTION": "PASTIE 4N20 12 X 175G",
        "LOCATION": "FREEZER",
        "UNITS": "BOX",
        "WAREHOUSE": "00",
        "AVAILABLE": "15.0000",
        "ON_HAND": "15.0000",
        "BRAND": "4N20",
        "PRICE1": "18.80",
        "TAX_CODE1": "1",
        "PROD_CLASS": "FROZ"
    }
}, {
    "Details": {
        "CODE": "PAT4PAS",
        "DESCRIPTION": "PASTIE 4N20 12 X 175G",
        "LOCATION": "FREEZER",
        "UNITS": "BOX",
        "WAREHOUSE": "00",
        "AVAILABLE": "15.0000",
        "ON_HAND": "15.0000",
        "BRAND": "4N20",
        "PRICE1": "18.80",
        "TAX_CODE1": "1",
        "PROD_CLASS": "FROZ"
    }
}, {
    "Details": {
        "CODE": "OMKM",
        "DESCRIPTION": "SAUCE KETCHUP MANIS 620ML [6]",
        "LOCATION": "DRY",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "187.0000",
        "ON_HAND": "189.0000",
        "BRAND": "ABC",
        "PRICE1": "3.40",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "DRY"
    }
}, {
    "Details": {
        "CODE": "BAXSAL",
        "DESCRIPTION": "SALSA MEXICAN 2LTR [6]",
        "LOCATION": "DRY",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "439.0000",
        "ON_HAND": "445.0000",
        "BRAND": "AGE",
        "PRICE1": "9.20",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "DRY"
    }
}, {
    "Details": {
        "CODE": "BAXSEMI",
        "DESCRIPTION": "TOMATO SEMI DRIED 2KG [4]",
        "LOCATION": "REFRIDGERATOR",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "55.0000",
        "ON_HAND": "59.0000",
        "BRAND": "AGE",
        "PRICE1": "21.10",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "CHILL"
    }
}, {
    "Details": {
        "CODE": "BAXSUN",
        "DESCRIPTION": "TOMATO SUN DRIED 2KG [4]",
        "LOCATION": "REFRIDGERATOR",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "39.0000",
        "ON_HAND": "39.0000",
        "BRAND": "AGE",
        "PRICE1": "15.20",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "CHILL"
    }
}, {
    "Details": {
        "CODE": "AMFBAM",
        "DESCRIPTION": "FLOUR - AM SUP BAKERS 12.5KG",
        "LOCATION": "REFRIDGERATOR",
        "UNITS": "BAG",
        "WAREHOUSE": "00",
        "AVAILABLE": "259.0000",
        "ON_HAND": "339.0000",
        "BRAND": "ALLIE",
        "PRICE1": "13.70",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "CHILL"
    }
}, {
    "Details": {
        "CODE": "ALPKKC",
        "DESCRIPTION": "KRANSKY - CHEESE 2.5KG [6]",
        "LOCATION": "REFRIDGERATOR",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "27.0000",
        "ON_HAND": "27.0000",
        "BRAND": "ALP",
        "PRICE1": "19.30",
        "TAX_CODE1": "-1",
        "PROD_CLASS": "CHILL"
    }
}, {
    "Details": {
        "CODE": "ABTDP",
        "DESCRIPTION": "TOOTHPICK - DOUBLE POINT 1000",
        "LOCATION": "DRY",
        "UNITS": "EACH",
        "WAREHOUSE": "00",
        "AVAILABLE": "12.0000",
        "ON_HAND": "12.0000",
        "BRAND": "ALPEN",
        "PRICE1": "1.60",
        "TAX_CODE1": "1",
        "PROD_CLASS": "DRY"
    }
}];

var fullySorted = _.sortBy(profData, obj => obj.Details.PROD_CLASS);
console.log(fullySorted);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore.js"></script>

Using Lodash:

_.sortBy(profData, 'Details.PROD_CLASS');
Sign up to request clarification or add additional context in comments.

2 Comments

Thanks it worked. what if I have to sort it with brand as well as like follows: in list is sorted by "product class" and then "Brand"
@VRK Using Lodash _.chain(profData).sortBy('Details.PROD_CLASS').sortBy('BRAND').value();.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.