Underscore.js _.sortBy函数

  • Post category:jquery

下面是关于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函数可以接收数组或者类数组对象,并且支持自定义排序规则。对于需要对数组进行排序的场景,这是一个非常实用的函数。