下面是关于Underscore.js _.sortBy函数的详细讲解:
简介
Underscore.js是一个JavaScript实用工具库,有助于实现一些常用的操作,如数组迭代、对象操作、函数绑定、模板生成等。其中,_.sortBy函数是在Underscore.js中提供的方法之一。
该函数可以根据一个指定的条件对数组进行排序,其实现方法与JavaScript本身提供的sort()函数不同,具有更好的可读性和灵活性。
语法
_.sortBy(list, [iteratee], [context])
参数说明:
- list:需要排序的数组或者类数组对象;
- iteratee:迭代器函数或者字符串,用于指定排序的规则;
- context:可选参数,指定iteratee函数执行时使用的this值。
返回值:
返回一个排序后的新数组。
示例
下面我们来看两个示例,了解一下_.sortBy函数的具体使用方法:
示例1
假设有这样一个数组:
var arr = [
{name: 'Mike', age: 20},
{name: 'Tom', age: 18},
{name: 'Jack', age: 25},
{name: 'Lisa', age: 22},
];
我们想要按照年龄从小到大对这个数组进行排序。那么可以这样来调用_.sortBy函数:
_.sortBy(arr, function(item){
return item.age;
});
最终的结果是:
[
{name: 'Tom', age: 18},
{name: 'Mike', age: 20},
{name: 'Lisa', age: 22},
{name: 'Jack', age: 25}
];
示例2
有这样一个类数组对象:
var arr = {
1: {name: 'Mike', age: 20},
2: {name: 'Tom', age: 18},
3: {name: 'Jack', age: 25},
4: {name: 'Lisa', age: 22},
length: 4
};
我们同样要按照年龄从小到大进行排序,那么可以这样来调用_.sortBy函数:
_.sortBy(arr, function(item){
return item.age;
});
最终的结果是:
[
{name: 'Tom', age: 18},
{name: 'Mike', age: 20},
{name: 'Lisa', age: 22},
{name: 'Jack', age: 25}
];
总结
通过以上的两个示例可以看出,_.sortBy函数可以接收数组或者类数组对象,并且支持自定义排序规则。对于需要对数组进行排序的场景,这是一个非常实用的函数。