We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

How to compare two arrays and get unique values

Hari1
Mega Sage

Hi,

I have 2 arrays. I need to get the users not present in the other array. I am using the below code I am able to get unique users but there are duplicates in it.

var arrCapUsers = ["a","b","c","d","e"];
var arrGrpUsers = ["a","b","c","d","e","f","g","h","i","j","k","l"];
var arrFinal = [];


for(var i=0; i<arrCapUsers.length; i++){
  for(var j=0; j<arrGrpUsers.length; j++){
    if(arrCapUsers[i] != arrGrpUsers[j]){
    arrFinal.push(arrGrpUsers[i])
  	}
  }
}

gs.info("arrFinal:"+arrFinal);


1 ACCEPTED SOLUTION

Hi,

then do this ->use diff() method

var arrCapUsers = ["a","b","c","d","e"];
var arrGrpUsers = ["a","b","c","d","e","f","g","h","i","j","k","l"];
var arrFinal = [];

var arrayUtil = new global.ArrayUtil();

arrFinal = arrayUtil.diff(arrGrpUsers,arrCapUsers);

gs.info(arrFinal);

Output:

find_real_file.png

Regards
Ankur

Regards,
Ankur
Certified Technical Architect  ||  10x ServiceNow MVP  ||  ServiceNow Community Leader

View solution in original post

5 REPLIES 5

Rahul Talreja
Mega Sage

Hi Hari,

If your desired output for the above mentioned test case is ['a','b','c','d','e'],
Than please make the following changes in your code.

var arrCapUsers = ["a","b","c","d","e"];
var arrGrpUsers = ["a","b","c","d","e","f","g","h","i","j","k","l"];
var arrFinal = [];


for(var i=0; i<arrCapUsers.length; i++)
{
  for(var j=0; j<arrGrpUsers.length; j++)
  {
    if(arrCapUsers[i] != arrGrpUsers[j])
    {
      arrFinal.push(arrGrpUsers[i])
      break;//add this line
    }
  }
}

gs.info("arrFinal:"+arrFinal);

 

Please mark my answer correct / helpful as applicable.

Thanks and Regards,
Rahul

Please mark my response correct/helpful as applicable!
Thanks and Regards,
Rahul