Most efficient way to remove duplicates in an array of CDT or Map based on a specific key?

I need to check a specific field in an array of cdt or map for duplicates, and return an array of cdt or map without duplicates on that field. For example:

CDT Array:

{
type!example(

email: "hello@gmail.com",

type: 1,

date: 01/01/2022

),

type!example(

email: "hello11@gmail.com",

type: 1,

date: 03/02/2023

),

type!example(

email: "hello@gmail.com",

type: 2,

date: 01/02/2023

)

}

In the above case, I want to return an array with unique email fields. Since the first and third item in the array have the same email address "hello@gmail.com", I only want to return the first one.

  Discussion posts and replies are publicly visible

Parents Reply
  • What would be the best way to return the list of cdt where any duplicates on the email field have been removed?

    What exactly are you expecting as the result of this?  If the emails are duplicate, but the other items in each CDT are not necessarily the same, what is the expected behavior?  Would it just keep the first copy of any given unique email and discard the data contained in any duplicates even if it's different?  Or some other potential approach, which you haven't specified?

Children