Optimized FilterByName() to weed out redundant queries

This commit is contained in:
Gregory Kurtzer
2021-12-30 03:35:54 +00:00
parent 02a5de3873
commit 2f6a9251cd

View File

@@ -10,16 +10,20 @@ import "regexp"
func FilterByName(set []NodeInfo, searchList []string) []NodeInfo {
var ret []NodeInfo
unique := make(map[string]NodeInfo)
if len(searchList) > 0 {
for _, search := range searchList {
for _, entry := range set {
b, _ := regexp.MatchString("^"+search+"$", entry.Id.Get())
if b {
ret = append(ret, entry)
unique[entry.Id.Get()] = entry
}
}
}
for _, n := range unique {
ret = append(ret, n)
}
} else {
ret = set
}