Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

Find max number from array

dvelloriy
Kilo Sage

Hi All,

 

I have the below code but its not working as expected. I am storing few numbers in RITM description and wanted to obtain the max number.

----------------

var ritmAT = [];
        var gr = new GlideRecord("sc_req_item");
        gr.addEncodedQuery("cat_item=4410e34a1b649a101a29eb98b04bcbfe^sys_created_onONToday@javascript:gs.beginningOfToday()@javascript:gs.endOfToday()");
        gr.orderByDesc('sys_created_on');
        gr.setLimit(1);
        gr.query(); //101, 102
        gs.info("$$$Records in RITM table: " + gr.getRowCount());
        while (gr.next()) {
            ritmAT.push(gr.description); //101, 102
        }
        gs.info("$$$ RITMAT: " + ritmAT);
        var maxNum = Math.max.apply(null,ritmAT); //102
        gs.info("$$$Max Number: " + maxNum);
 
dvelloriy_0-1730128407109.png

 

1 ACCEPTED SOLUTION

Forcing the retrieved description to a string should remedy that

    var descArr = gr.description.toString().split(',');

View solution in original post

9 REPLIES 9

Ravi Peddineni
Kilo Sage

@dvelloriy 

gr.description might be a string field. Try below code in the while loop:

ritmAT.push(parseInt(gr.description)); //101, 102

 

Still showing NaN

@dvelloriy 

Can you try this:

ritmAT.push(parseInt(gr.getValue('description')));

// Make sure you're getting the description, split desc on comma, then reduce array (allows parsing of string to int).

var desc = '101, 102';

var descNums = desc.split(',');
var max = descNums.reduce(function(a, c) {
return Math.max(parseInt(a), parseInt(c));
}, descNums[0]);

gs.info('max='+max);