func Max(ns interface{}, f interface{}) interface{} {
rv := reflect.ValueOf(ns)
if rv.Len() == 0 {
return nil
}
rf := reflect.ValueOf(f)
rft := rf.Type()
out := rft.Out(0)
sort.Slice(ns, func(i, j int) bool {
switch out.Kind() {
case reflect.Float64:
return rf.Call([]reflect.Value{rv.Index(i)})[0].Float() > rf.Call([]reflect.Value{rv.Index(j)})[0].Float()
case reflect.Int, reflect.Int64:
return rf.Call([]reflect.Value{rv.Index(i)})[0].Int() > rf.Call([]reflect.Value{rv.Index(j)})[0].Int()
}
panic("不支持的返回类型")
})
return rv.Index(0).Interface()
}
获取对象数组最大对象
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 直接上代码吧。 $("body").on("click","#submit",function () { //点击...
- CSS3 transform rotate 深入 透视效果perspective(px) ...
- 1、用promise获取新闻练习: //定义获取新闻的功能函数 function getNews(url){ ...