jianfengye/collection

希望添加KeyBy函数

Closed this issue · 1 comments

希望实现laravel的keyby如下:
https://learnku.com/docs/laravel/5.8/collections/3916#method-keyby

$collection = collect([
    ['product_id' => 'prod-100', 'name' => 'Desk'],
    ['product_id' => 'prod-200', 'name' => 'Chair'],
]);
//根据结构体的字段组合新的数据返回
$keyed = $collection->keyBy('product_id');

/*
    [
        'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'],
        'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'],
    ]
*/

go希望返回map类型,key为 keyby的值字符串,value为结构体对象

type User struct {
	ID       int
	UserName string
	Age      int
}

user1 := User{ID: 1, UserName: "u1", Age: 18}
user2 := User{ID: 2, UserName: "u2", Age: 19}

collection.NewObjCollection([]User{user1, user2}).KeyBy("ID")
/*
"1": User{ID: 1, UserName: "u1", Age: 18},
"2": User{ID: 2, UserName: "u2", Age: 19}
*/

增加了一个KeyByStrField方法,文档已经更新