mirror of
https://github.com/unti-io/go-utils.git
synced 2025-10-04 16:02:39 +08:00
54 lines
1014 B
Go
54 lines
1014 B
Go
package utils
|
|
|
|
import (
|
|
"strings"
|
|
)
|
|
|
|
// ArrayFilter - 数组过滤
|
|
func ArrayFilter(array []string) (slice []string) {
|
|
for key, val := range array {
|
|
if (key > 0 && array[key-1] == val) || len(val) == 0 {
|
|
continue
|
|
}
|
|
slice = append(slice, val)
|
|
}
|
|
return
|
|
}
|
|
|
|
// ArrayRemove - 数组删除
|
|
func ArrayRemove(array []string, args ...string) []string {
|
|
for _, value := range args {
|
|
for key, val := range array {
|
|
// 去除空格
|
|
val = strings.TrimSpace(val)
|
|
// 根据索引删除
|
|
if val == value {
|
|
array = append(array[:key], array[key+1:]...)
|
|
}
|
|
}
|
|
}
|
|
return array
|
|
}
|
|
|
|
// ArrayUnique - 数组去重
|
|
func ArrayUnique[T any](array []T) (slice []any) {
|
|
list := make(map[any]bool)
|
|
for _, item := range array {
|
|
if !list[item] {
|
|
list[item] = true
|
|
slice = append(slice, item)
|
|
}
|
|
}
|
|
return slice
|
|
}
|
|
|
|
// ArrayEmpty - 数组去空
|
|
func ArrayEmpty[T any](array []T) (slice []any) {
|
|
for _, item := range array {
|
|
if !IsEmpty(item) {
|
|
slice = append(slice, item)
|
|
}
|
|
}
|
|
return slice
|
|
}
|