Welcome to Community Week 2025! Join us to learn, connect, and be recognized as we celebrate the spirit of Community and the power of AI. Get the details  

Remove Duplicate Objects

Yuvan Raj Kuma1
Tera Contributor

I really need some help to remove duplicate from the below object array, Assume key as unique identifier. Attaching the below code which i used to remove duplicate 

var inputData = [

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC12358","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC1234","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123023","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]}

];

 

 

code 1 : 

 

var uniq = removeDupObj(inputData ,"records.key[]");

 

function removeDupObj(arr, prop) {
        var seen = {};
        var filteredArray = arr.filter(function(item) {
            var key = item[prop];
            return seen.hasOwnProperty(key) ? false : (seen[key] = true);
        });
        return filteredArray;
    }
 
Problem : Its giving me only one record not all the unique values
 
 
Code 2 : 
 
function removeDuplicateRecords(data) {
    var uniqueRecords = {};
    var result = [];
 gs.info(data)
    for (var i = 0; i < data.length; i++) {
       
        var key = data[i].records[0].key;
        gs.info(key);
       
 
        if (!uniqueRecords[key]) {
            uniqueRecords[key] = true;
            result.push(data[i]);
        }
    }

 
    return result;
}
 
var deduplicatedData = removeDuplicateRecords(JSON.stringify(productInvetoriesCDW));
gs.log(JSON.stringify(deduplicatedData, null, 2));
 
 
Problem getting 
Evaluator: com.glide.script.RhinoEcmaError: Cannot read property "0" from undefined
   script : Line(72) column(0)
1 ACCEPTED SOLUTION

Sandeep Rajput
Tera Patron
Tera Patron

@Yuvan Raj Kuma1 I have fixed your code 1 in the following script and managed to get the unique results through it.

 

var inputData = [
{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC12358","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC1234","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123023","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]}

];

 var uniq = removeDupObj(inputData ,"records");


 gs.print(JSON.stringify(uniq));

function removeDupObj(arr, prop) {
        var seen = {};
        var i=0;
        var filteredArray = arr.filter(function(item) {
            var key = item[prop][0].key;            
            return seen.hasOwnProperty(key) ? false : (seen[key] = true);
        });
        return filteredArray;
    }

 

Here is the output

*** Script: [{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC12358","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC1234","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC123023","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]}]

 

Please mark the answer helpful and correct if it manages to address your issue.

View solution in original post

2 REPLIES 2

Sandeep Rajput
Tera Patron
Tera Patron

@Yuvan Raj Kuma1 I have fixed your code 1 in the following script and managed to get the unique results through it.

 

var inputData = [
{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC12358","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC1234","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]},

{"records":[{"key":"BBC123023","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}} }]}

];

 var uniq = removeDupObj(inputData ,"records");


 gs.print(JSON.stringify(uniq));

function removeDupObj(arr, prop) {
        var seen = {};
        var i=0;
        var filteredArray = arr.filter(function(item) {
            var key = item[prop][0].key;            
            return seen.hasOwnProperty(key) ? false : (seen[key] = true);
        });
        return filteredArray;
    }

 

Here is the output

*** Script: [{"records":[{"key":"BBC123","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC12358","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC1234","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]},{"records":[{"key":"BBC123023","value":{"messageId":"1709222769268","messageTime":1709222769297,"messageType":"update","messageName":"INVENTORY.SPECIFIC.EVENT","pattern":"SPECIFIC.EVENT","version":"1","source":"dummy","uniqueId":"456789","correlationId":"2024-02-29T16:06:09.297Z","payload":{"callbackURL":" https://test123","productInstanceId":"bbnn","billingAccountNumber":"ABCDDG"}}}]}]

 

Please mark the answer helpful and correct if it manages to address your issue.

Yuvan Raj Kuma1
Tera Contributor

@Sandeep Rajput Thats awesome thanks for your help and time!!!😊