9
9
\_/__/
10
10
```
11
11
12
- # Underscore.go [ ![ GoDoc] ( https://godoc.org/github.com/ahl5esoft/golang-underscore?status.svg )] ( https://godoc.org/github.com/ahl5esoft/golang-underscore ) [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/ahl5esoft/golang-underscore )] ( https://goreportcard.com/report/github.com/ahl5esoft/golang-underscore ) ![ Version] ( https://img.shields.io/badge/version-2.0.0 -green.svg )
12
+ # Underscore.go [ ![ GoDoc] ( https://godoc.org/github.com/ahl5esoft/golang-underscore?status.svg )] ( https://godoc.org/github.com/ahl5esoft/golang-underscore ) [ ![ Go Report Card] ( https://goreportcard.com/badge/github.com/ahl5esoft/golang-underscore )] ( https://goreportcard.com/report/github.com/ahl5esoft/golang-underscore ) ![ Version] ( https://img.shields.io/badge/version-2.0.1 -green.svg )
13
13
like <a href =" http://underscorejs.org/ " >underscore.js</a > and C# LINQ, but for Go
14
14
15
15
## Installation
@@ -19,7 +19,7 @@ like <a href="http://underscorejs.org/">underscore.js</a> and C# LINQ, but for G
19
19
$ go get -u github.com/ahl5esoft/golang-underscore
20
20
21
21
## Lack
22
- * Except、 ExceptBy、Order、OrderBy、 ThenBy
22
+ * Except/ ExceptBy/Reject/RejectBy/Reverse/ReverseBy/ ThenBy
23
23
24
24
## Documentation
25
25
@@ -44,16 +44,15 @@ like <a href="http://underscorejs.org/">underscore.js</a> and C# LINQ, but for G
44
44
* [ ` Map ` ] ( #select ) , [ ` MapBy ` ] ( #selectBy )
45
45
* [ ` MapMany ` ] ( #selectMany ) , [ ` MapManyBy ` ] ( #selectManyBy )
46
46
* [ ` Object ` ] ( #object )
47
+ * [ ` Order ` ] ( #order ) , [ ` OrderBy ` ] ( #orderBy )
47
48
* [ ` Property ` ] ( #property ) , [ ` PropertyRV ` ] ( #propertyRV )
48
49
* [ ` Range ` ] ( #range )
49
50
* [ ` Reduce ` ] ( #aggregate )
50
- * [ ` Reject ` ] ( #reject ) , [ ` RejectBy ` ] ( #rejectBy )
51
- * [ ` Reverse ` ] ( #reverse ) , [ ` ReverseBy ` ] ( #reverseBy )
52
51
* [ ` Select ` ] ( #select ) , [ ` SelectBy ` ] ( #selectBy )
53
52
* [ ` SelectMany ` ] ( #selectMany ) , [ ` SelectManyBy ` ] ( #selectManyBy )
54
53
* [ ` Size ` ] ( #count )
55
54
* [ ` Skip ` ] ( #skip )
56
- * [ ` Sort ` ] ( #sort ) , [ ` SortBy ` ] ( #sortBy )
55
+ * [ ` Sort ` ] ( #order ) , [ ` SortBy ` ] ( #orderBy )
57
56
* [ ` Take ` ] ( #take )
58
57
* [ ` Uniq ` ] ( #distinct ) , [ ` UniqBy ` ] ( #distinctBy )
59
58
* [ ` Values ` ] ( #values )
@@ -622,6 +621,59 @@ Chain(src).Object().Value(&dst)
622
621
// dst = map[a:1 b:2]
623
622
```
624
623
624
+ <a name =" order " />
625
+
626
+ ### Order(selector) IEnumerable
627
+
628
+ __ Arguments__
629
+
630
+ * ` selector ` - func(element, key or index) anyType
631
+
632
+
633
+ __ Examples__
634
+
635
+ ``` go
636
+ arr := []testModel{
637
+ {ID: 2 , Name: " two" },
638
+ {ID: 1 , Name: " one" },
639
+ {ID: 3 , Name: " three" },
640
+ }
641
+ var res []testModel
642
+ Chain (arr).Order (func (n testModel, _ int ) int {
643
+ return n.ID
644
+ }).Value (&res)
645
+ // res = [{{0} 1 one} {{0} 2 two} {{0} 3 three}]
646
+ ```
647
+
648
+ __ Same__
649
+
650
+ * ` Sort `
651
+
652
+ <a name =" orderBy " />
653
+
654
+ ### OrderBy(fieldName) IEnumerable
655
+
656
+ __ Arguments__
657
+
658
+ * ` fieldName ` - string
659
+
660
+ __ Examples__
661
+
662
+ ``` go
663
+ arr := []testModel{
664
+ {ID: 2 , Name: " two" },
665
+ {ID: 1 , Name: " one" },
666
+ {ID: 3 , Name: " three" },
667
+ }
668
+ var res []testModel
669
+ Chain (arr).OrderBy (" id" ).Value (&res)
670
+ // res = [{{0} 1 one} {{0} 2 two} {{0} 3 three}]
671
+ ```
672
+
673
+ __ Same__
674
+
675
+ * ` SortBy `
676
+
625
677
<a name =" property " />
626
678
627
679
### Property(name)
@@ -708,107 +760,6 @@ Range2(0, 3, 2).Value(&res)
708
760
// res = [0 2]
709
761
```
710
762
711
- <a name =" reject " />
712
-
713
- ### Reject(predicate) IEnumerable
714
-
715
- __ Arguments__
716
-
717
- * ` predicate ` - func(element or value, index or key) bool
718
-
719
- __ Examples__
720
-
721
- ``` go
722
- arr := []int {1 , 2 , 3 , 4 }
723
- var res []int
724
- Chain (arr).Reject (func (n, i int ) bool {
725
- return n%2 == 0
726
- }).Value (&res)
727
- // or
728
- res := Reject (arr, func (n, i int ) bool {
729
- return n%2 == 0
730
- }).([]int )
731
- // res = [1 3]
732
- ```
733
-
734
- <a name =" rejectBy " />
735
-
736
- ### RejectBy(properties) IEnumerable
737
-
738
- __ Arguments__
739
-
740
- * ` properties ` - map[ string] interface{}
741
-
742
- __ Examples__
743
-
744
- ``` go
745
- arr := []testModel{
746
- {ID: 1 , Name: " one" },
747
- {ID: 2 , Name: " two" },
748
- {ID: 3 , Name: " three" },
749
- }
750
- var res []testModel
751
- Chain (arr).RejectBy (map [string ]interface {}{
752
- " Id" : 1 ,
753
- }).Value (&res)
754
- // or
755
- res := RejectBy (arr, map [string ]interface {}{
756
- " Id" : 1 ,
757
- }).([]testModel)
758
- // res = [{{0} 2 two} {{0} 3 three}]
759
- ```
760
-
761
- <a name =" reverse " />
762
-
763
- ### Reverse(selector) IEnumerable
764
-
765
- __ Arguments__
766
-
767
- * ` selector ` - func(element, key or index) anyType
768
-
769
-
770
- __ Examples__
771
-
772
- ``` go
773
- arr := []testModel{
774
- {ID: 2 , Name: " two" },
775
- {ID: 1 , Name: " one" },
776
- {ID: 3 , Name: " three" },
777
- }
778
- var res []testModel
779
- Chain (arr).Reverse (func (n testModel, _ int ) int {
780
- return n.ID
781
- }).Value (&res)
782
- // or
783
- res := Reverse (arr, func (n testModel, _ int ) int {
784
- return n.ID
785
- }).([]testModel)
786
- // res = [{{0} 3 three} {{0} 2 two} {{0} 1 one}]
787
- ```
788
-
789
- <a name =" reverseBy " />
790
-
791
- ### ReverseBy(fieldName) IEnumerable
792
-
793
- __ Arguments__
794
-
795
- * ` fieldName ` - string
796
-
797
- __ Examples__
798
-
799
- ``` go
800
- arr := []testModel{
801
- {ID: 2 , Name: " two" },
802
- {ID: 1 , Name: " one" },
803
- {ID: 3 , Name: " three" },
804
- }
805
- var res []testModel
806
- Chain (arr).ReverseBy (" id" ).Value (&res)
807
- // or
808
- res := ReverseBy (arr, " id" ).([]testModel)
809
- // res = [{{0} 3 three} {{0} 2 two} {{0} 1 one}]
810
- ```
811
-
812
763
<a name =" select " />
813
764
814
765
### Select(selector) IEnumerable
@@ -881,9 +832,9 @@ __Same__
881
832
882
833
* ` MapMany `
883
834
884
- <a name =" mapManyBy " />
835
+ <a name =" selectManyBy " />
885
836
886
- ### MapManyBy (property) IEnumerable
837
+ ### SelectManyBy (property) IEnumerable
887
838
888
839
__ Arguments__
889
840
@@ -922,57 +873,6 @@ Chain(src).Skip(2).Value(&dst)
922
873
// dst = [3]
923
874
```
924
875
925
- <a name =" sort " />
926
-
927
- ### Sort(selector) IEnumerable
928
-
929
- __ Arguments__
930
-
931
- * ` selector ` - func(element, key or index) anyType
932
-
933
-
934
- __ Examples__
935
-
936
- ``` go
937
- arr := []testModel{
938
- {ID: 2 , Name: " two" },
939
- {ID: 1 , Name: " one" },
940
- {ID: 3 , Name: " three" },
941
- }
942
- var res []testModel
943
- Chain (arr).Sort (func (n testModel, _ int ) int {
944
- return n.ID
945
- }).Value (&res)
946
- // or
947
- res := Sort (arr, func (n testModel, _ int ) int {
948
- return n.ID
949
- }).([]testModel)
950
- // res = [{{0} 1 one} {{0} 2 two} {{0} 3 three}]
951
- ```
952
-
953
- <a name =" sortBy " />
954
-
955
- ### SortBy(fieldName) IEnumerable
956
-
957
- __ Arguments__
958
-
959
- * ` fieldName ` - string
960
-
961
- __ Examples__
962
-
963
- ``` go
964
- arr := []testModel{
965
- {ID: 2 , Name: " two" },
966
- {ID: 1 , Name: " one" },
967
- {ID: 3 , Name: " three" },
968
- }
969
- var res []testModel
970
- Chain (arr).SortBy (" id" ).Value (&res)
971
- // or
972
- res := SortBy (arr, " id" ).([]testModel)
973
- // res = [{{0} 1 one} {{0} 2 two} {{0} 3 three}]
974
- ```
975
-
976
876
<a name =" take " />
977
877
978
878
### Take(count) IEnumerable
0 commit comments