@@ -107,16 +107,6 @@ func SearchSimilarNames(c *gin.Context) {
107107 }
108108 }
109109 }
110-
111- if len (similarNames ) == 0 {
112- similarNames = append (similarNames , models.NameVar {Name : n .Name , Levenshtein : smlt })
113- varWords := strings .Split (n .NameVariations , "|" )
114- for _ , vw := range varWords {
115- if vw != "" {
116- similarNames = append (similarNames , models.NameVar {Name : vw , Levenshtein : smlt })
117- }
118- }
119- }
120110 }
121111 }
122112
@@ -151,11 +141,33 @@ func orderByLevenshtein(arr []models.NameVar) []string {
151141
152142 var retArry []string
153143 for _ , lv := range sortedArr {
154- if lv .Levenshtein != float32 (0 ) {
155- retArry = append (retArry , lv .Name )
144+ retArry = append (retArry , lv .Name )
145+ }
146+
147+ return removeDuplicates (retArry )
148+
149+ }
150+
151+ //removeDuplicates remove duplicates of []string
152+ func removeDuplicates (arr []string ) []string {
153+ var cleanArr []string
154+
155+ for _ , a := range arr {
156+ if ! contains (cleanArr , a ) {
157+ cleanArr = append (cleanArr , a )
156158 }
159+ }
160+
161+ return cleanArr
162+ }
157163
164+ //contains verifies if []string already has a specific string
165+ func contains (s []string , str string ) bool {
166+ for _ , v := range s {
167+ if v == str {
168+ return true
169+ }
158170 }
159171
160- return retArry
172+ return false
161173}
0 commit comments