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  ||  ✨ 9x ServiceNow MVP  ||  ✨ ServiceNow Community Leader

View solution in original post

5 REPLIES 5

Rahul Talreja
Mega Sage
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