fix utils.array.go
This commit is contained in:
parent
240d0f1e7c
commit
df56cb550e
|
|
@ -2,37 +2,61 @@ package utils
|
||||||
|
|
||||||
import "strings"
|
import "strings"
|
||||||
|
|
||||||
func In(target string, array []string) bool {
|
// ArrayInString 判断字符串是否存在于字符串切片中
|
||||||
target = strings.Trim(target, "")
|
// target: 待匹配的目标字符串
|
||||||
|
// array: 需要查找的字符串切片
|
||||||
|
func ArrayInString(target string, array []string) bool {
|
||||||
|
target = strings.TrimSpace(target)
|
||||||
for _, v := range array {
|
for _, v := range array {
|
||||||
if strings.Trim(v, "") == target {
|
if strings.TrimSpace(v) == target {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
// 字符串数组是否存在
|
// ArrayInInt 判断整数是否存在于整型切片中
|
||||||
func StrArrayIndex(items []string, item string) int {
|
// target: 待匹配的目标整数
|
||||||
for i, eachItem := range items {
|
// array: 需要查找的整型切片
|
||||||
if eachItem == item {
|
func ArrayInInt(target int, array []int) bool {
|
||||||
return i
|
for _, v := range array {
|
||||||
|
if v == target {
|
||||||
|
return true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return -1
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
func RemoveRepeatSlice(in []string) (out []string) {
|
// ArrayRemoveRepeatString 去除字符串切片中的重复元素(保持原有顺序)
|
||||||
_map := make(map[string]bool)
|
// in: 原始字符串切片
|
||||||
for i := 0; i < len(in); i++ {
|
// 返回: 去重后的字符串切片
|
||||||
if in[i] != "" {
|
func ArrayRemoveRepeatString(in []string) (out []string) {
|
||||||
_map[in[i]] = true
|
seen := make(map[string]struct{})
|
||||||
|
for _, v := range in {
|
||||||
|
trimmed := strings.TrimSpace(v)
|
||||||
|
if trimmed == "" {
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
if _, ok := seen[trimmed]; ok {
|
||||||
|
continue
|
||||||
}
|
}
|
||||||
|
seen[trimmed] = struct{}{}
|
||||||
for key, _ := range _map {
|
out = append(out, trimmed)
|
||||||
out = append(out, key)
|
}
|
||||||
|
return out
|
||||||
|
}
|
||||||
|
|
||||||
|
// ArrayRemoveRepeatInt 去除整型切片中的重复元素(保持原有顺序)
|
||||||
|
// in: 原始整型切片
|
||||||
|
// 返回: 去重后的整型切片
|
||||||
|
func ArrayRemoveRepeatInt(in []int) (out []int) {
|
||||||
|
seen := make(map[int]struct{})
|
||||||
|
for _, v := range in {
|
||||||
|
if _, ok := seen[v]; ok {
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
seen[v] = struct{}{}
|
||||||
|
out = append(out, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
return out
|
return out
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue