mirror of
https://github.com/rjNemo/underscore
synced 2026-06-06 02:26:42 +00:00
add difference function
This commit is contained in:
parent
227a1d5479
commit
89da3c715a
3 changed files with 26 additions and 1 deletions
|
|
@ -4,7 +4,7 @@
|
||||||

|

|
||||||

|

|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
`underscore` is a `Go` library providing useful functional programming helpers without extending any built-in objects.
|
`underscore` is a `Go` library providing useful functional programming helpers without extending any built-in objects.
|
||||||
|
|
||||||
|
|
|
||||||
8
difference.go
Normal file
8
difference.go
Normal file
|
|
@ -0,0 +1,8 @@
|
||||||
|
package underscore
|
||||||
|
|
||||||
|
// Difference Returns a copy of the array with all instances of the values that are not present in the other array.
|
||||||
|
func Difference[T comparable](slice, other []T) []T {
|
||||||
|
return Filter(slice, func(n T) bool {
|
||||||
|
return !Contains(other, n)
|
||||||
|
})
|
||||||
|
}
|
||||||
17
difference_test.go
Normal file
17
difference_test.go
Normal file
|
|
@ -0,0 +1,17 @@
|
||||||
|
package underscore_test
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
|
||||||
|
u "github.com/rjNemo/underscore"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestDifference(t *testing.T) {
|
||||||
|
a := []int{1, 3, 5, 6, 7, 9}
|
||||||
|
b := []int{9, 7, 5, 4}
|
||||||
|
want := []int{1, 3, 6}
|
||||||
|
|
||||||
|
assert.Equal(t, want, u.Difference(a, b))
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue