0

I have two array objects as below:

var arrayOne = [{"Name":"job","SubscriptionGUID":"8ead7edfa460"},{"Name":"TestJobSQL","SubscriptionGUID":"09e7dbff7779"}];
var arrayTwo = [{"UserSubscriptionID":13,"SubscriptionGUID":"8ead7edfa460","Name":"job"}];
var arrayDiff = [];

I need to compare the element Name and remove matched element only show not matching array element in arrayDiff

as per above example My new arrayDiff should be

var arrayDiff = [{"Name":"TestJobSQL"}]; or var arrayDiff = ['TestJobSQL'];

if the arrayTwo is

var arrayTwo = [];

then arrayDiff should return

var arrayDiff = [{"Name":"TestJobSQL"},{"Name":"Job"}]; or  var arrayDiff = ['TestJobSQL', 'Job'];
Mukesh S
  • 367
  • 5
  • 19
  • Possible duplicate of [Easiest way to find duplicate values in a JavaScript array](https://stackoverflow.com/questions/840781/easiest-way-to-find-duplicate-values-in-a-javascript-array) – James Gould May 31 '17 at 07:08

4 Answers4

1

Try this

var arrayOne = [{"Name":"job","SubscriptionGUID":"8ead7edfa460"},{"Name":"TestJobSQL","SubscriptionGUID":"09e7dbff7779"}];
var arrayTwo = [{"UserSubscriptionID":13,"SubscriptionGUID":"8ead7edfa460","Name":"job"}];
var arrayDiff = [];
arrayOne.forEach(function(item, index){
    var found = false;
    arrayTwo.forEach(function(item1, index1){
        if(item.Name == item1.Name) {
            found = true;
        }   
    })
    if(found == false) {
        arrayDiff.push({ Name : item.Name});
    }
})
console.log(arrayDiff);
Manoj
  • 4,951
  • 2
  • 30
  • 56
0

An easy way would be using lodash's and _.differenceBy method.

It let's you make two arrays diff based on the property you want.

Ander2
  • 5,569
  • 2
  • 23
  • 42
0
var createDiffArray = function(attrName,arrayOne,arrayTwo){
   var arrayDif = [];
   for (let element of arrayOne){
      if (arrayTwo.find( x => x[attrName] === element[attrName]) !== undefined){
          arrayDif.push(element[attrName]);
      }  
   }
   return arrayDif;
}
0

var arrayOne = [{"Name":"job","SubscriptionGUID":"8ead7edfa460"},{"Name":"TestJobSQL","SubscriptionGUID":"09e7dbff7779"}];
var arrayTwo = [{"UserSubscriptionID":13,"SubscriptionGUID":"8ead7edfa460","Name":"job"}];
//arrayTwo=[];
var result = [];


arrayOne.forEach(function(e){
  if(arrayTwo.length==0){
    result.push(e.Name);
  }else{
  arrayTwo.forEach(function(e2){
    if(e.Name!=e2.Name){
      result.push(e.Name);
    }
  })
  }

})
console.log(result);
Ataur Rahman Munna
  • 3,887
  • 1
  • 23
  • 34