How to compare two lists ... Group memberships.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-29-2022 05:57 AM
I have a scenario whereby I need to compare two lists to confirm that all values, separated by a comma, in list one appears in list two. For example, see the output from the below script, I need to check if the values in the first line appear in the second.
Is there a way of doing this whereby I don't have to take the first value in the first list, loop through the second list and then repeat for all values in the first list? P.s. I haven't written this part of the script yet, the below is just a test I have started to write as a background script.
Script:
var reqFor = '5627c2ce979151d4472bb5ffe153afd4';
var groups = 'itil test,pll box support';
var splitGroups = groups.split(',');
// gs.print(groups);
gs.print(splitGroups);
var myGroups = new GlideRecord('sys_user_grmember');
myGroups.addQuery('user', reqFor);
myGroups.query();
var list = [];
while (myGroups.next()) {
list.push(myGroups.getDisplayValue('group'));
}
gs.print(list);
Output:
*** Script: itil test,pll box support
*** Script: PLL ITIL Role Group,CYT ITIL Role Group,CYT Admin Role Group,PLL Generic Account Approval,CYT ServiceNow Project Team,CYT Security Admin Role Group,Service Desk,CYT Problem Coordinator Role Group,PLL ACMS/FDMS Support,Windchill Container Approval UK,PLL Business Intelligence Support,PLL Automated Installs,CYT ServiceNow Approvers,PLL BI Operations,PLL CAD Support,PLL Security Group,CYT ServiceNow Admins,PLL Box Support
[0:00:00.039] Total Time
Steven
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
11-29-2022 06:24 AM
Hi,
The easiest way is to make two list as array and then use method intersect of ArrayUtil.
var tr="ITIL,ITil_adMin,rest_api,k,j";
var tr1="ITIL_admin,ITil,rest_api,j,k";
var trArr=tr.toLowerCase().split(",");
var tr1Arr=tr1.toLowerCase().split(",");
var au=new ArrayUtil();
if(au.diff(trArr,tr1Arr).length==0 && au.diff(tr1Arr,trArr).length==0)
gs.info('identical elements');
else
gs.info('not identical elements');
Thanks and Regards,
Saurabh Gupta