js 数组对象根据指定字段排序

 JavaScript  2022-12-09  admin  251  338

/**
 * js 数组对象根据指定字段排序
 * @param list
 * @param key
 * @param type
 * @author centphp.com
 */
function objectSort(list, key, type) {
    type = type || 'asc'
    list.sort(function (a, b) {
        if (type === 'desc') {
            return b[key] - a[key];
        } else {
            return a[key] - b[key]
        }
    });
}

使用:

var list = [
        {"id": 1, "name": "北京"},
        {"id": 9, "name": "江苏"},
        {"id": 2, "name": "上海"},
        {"id": 100, "name": "浙江"},
        {"id": 3, "name": "深圳"},
    ];

    objectSort(list, 'id');
    console.log(list);
    
    //var list2 = list; //错误 js Object为引用类型, 用=复制会造成改变一个全都变动
    var list2 = JSON.parse(JSON.stringify(list));
    
    objectSort(list2, 'id', 'desc');
    console.log(list2);


如果文章对您有帮助,点击下方的广告,支持一下作者吧!

转载必须注明出处:

js 数组对象根据指定字段排序 —— centhp.com

相关推荐


在go协程中共享资源需要加锁处理

在go协程中共享资源需要加锁处理packagemain import( "fmt" "sync" ) //创建一个互斥锁 varmutex=&sync.Mutex{} //定义一个共享资源 varsharedResource=0 //定义一个等待组 varwg=sync.WaitGroup{} //定义一

go 的 Pool池对象 sync.Pool 创建mysql连接池

//在这个例子中,我们创建了一个sync.Pool,其中包含一个New函数,该函数创建一个MySQL连接 //在someFunction中,我们使用dbPool.Get()从池中获取一个MySQL连接 //然后我们使用连接进行一些操作,最后使用dbPool.Put()将连接放回池中 //我们可以通过设置dbPool的大小来初始化连接池中的连接数量 //例如,如果我们想要初始化10个连接,我

go 的 Pool池对象-sync.Pool

packagemain import( "fmt" "strconv" "sync" ) //在go中,原生的池化数据结构为sync.Pool,有三个方法: //New字段为一个方法,定义为func()interface{},在新建Pool时,定义好New字段,以供后续从池中获取对象时,如果当前池中无对象,则使

go WaitGroup 的使用方法

在 Go 中,sync 包下的 WaitGroup 能有助于我们控制协程之间的同步。当需要等待一组协程都执行完各自任务后,才能继续后续逻辑。这种场景,就非常适合使用它。WaitGroup 提供三个 API。Add(delta int) 函数提供了 WaitGroup 的任务计数,delta 的值可以为正也可以为负,通常在添加任务时使用。Done() 函数其实就是 Add(-1),在任务完成时调用。