diff --git a/utils/delta.go b/utils/delta.go index fd384dd3..39570552 100644 --- a/utils/delta.go +++ b/utils/delta.go @@ -3,27 +3,27 @@ package utils func Delta(a []string, b []string) ([]string, []string, []string) { maintained := make([]string, 0) dismissed := make([]string, 0) - hash := make(map[string]bool) + hash := make(map[string]int) for _, item := range a { - hash[item] = true + hash[item] = 1 } for _, item := range b { - if hash[item] { + if hash[item] > 0 { maintained = append(maintained, item) - delete(hash, item) + hash[item] = 2 } else { dismissed = append(dismissed, item) } } - introduced := make([]string, len(hash)) + introduced := make([]string, 0) - i := 0 - for k := range hash { - introduced[i] = k - i++ + for k, v := range hash { + if v == 1 { + introduced = append(introduced, k) + } } return introduced, maintained, dismissed