Dedupe
Deduplicates the elements in a given array or slice.
- Implement an appropriate function for each type.
- Use
make()
to create amap
and an appropriate slice. - Use
range
to iterate over the elements in the collection and the map to check if they have been seen before. - Use
append()
to add unique values to the slice.
func DedupeInts(arr []int) []int {
m, uniq := make(map[int]bool), make([]int, 0)
for _, v := range arr {
if _, ok := m[v]; !ok {
m[v], uniq = true, append(uniq, v)
}
}
return uniq
}
func DedupeFloat64s(arr []float64) []float64 {
m, uniq := make(map[float64]bool), make([]float64, 0)
for _, v := range arr {
if _, ok := m[v]; !ok {
m[v], uniq = true, append(uniq, v)
}
}
return uniq
}
func DedupeStrings(arr []string) []string {
m, uniq := make(map[string]bool), make([]string, 0)
for _, v := range arr {
if _, ok := m[v]; !ok {
m[v], uniq = true, append(uniq, v)
}
}
return uniq
}