diff --git a/utils/app.go b/utils/app.go index 0408329..9c20c14 100644 --- a/utils/app.go +++ b/utils/app.go @@ -2,6 +2,7 @@ package utils func init() { In.Array = InArray[any] + Array.Diff = ArrayDiff[any] Array.Filter = ArrayFilter Array.Remove = ArrayRemove Array.Unique = ArrayUnique[any] @@ -20,6 +21,7 @@ var In struct { } var Array struct { + Diff func(array1, array2 []any) (slice []any) Filter func(array []string) (slice []string) Remove func(array []string, args ...string) (slice []string) Unique func(array []any) (slice []any) diff --git a/utils/array.go b/utils/array.go index ffea830..71325d2 100644 --- a/utils/array.go +++ b/utils/array.go @@ -78,3 +78,13 @@ func ArrayReverse[T any](array []T) (slice []T) { } return array } + +// ArrayDiff - 数组差集 +func ArrayDiff[T any](array1, array2 []T) (slice []T) { + for _, item := range array1 { + if !InArray(item, array2) { + slice = append(slice, item) + } + } + return slice +} diff --git a/utils/url.go b/utils/url.go index 37b2a9c..a496e1c 100644 --- a/utils/url.go +++ b/utils/url.go @@ -13,6 +13,7 @@ type UrlStruct struct { // Encoded - 将 map 编码为 URL 查询字符串 - x-www-form-urlencoded func (this *UrlStruct) Encoded(params map[string]any) string { + var parts []string for key, value := range params {