📜  Underscore.js _.comparator() 方法(1)

📅  最后修改于: 2023-12-03 15:05:43.195000             🧑  作者: Mango

Underscore.js 是一个流行的 JavaScript 工具库,提供了许多用于操作集合、函数、对象等数据类型的方便方法。其中 _.comparator() 方法用于创建一个可供排序使用的比较函数。

语法
_.comparator([iteratee], [context])
参数:
  • iteratee (可选): 用来生成排序依据的函数。缺省时默认为返回同传入参数。
  • context (可选): iteratee 需要运行时的上下文环境。
返回值:
  • 返回一个函数,用于在比较两个值时进行排序。
示例

假定我们有以下数组:

const arr = [
  { name: 'john', age: 20 },
  { name: 'peter', age: 18 },
  { name: 'mark', age: 22 }
];

我们可以使用 _.comparator() 方法创建一个比较函数:

const compareByAge = _.comparator(function(person) {
  return person.age; // 比较年龄
});

arr.sort(compareByAge);

这将按年龄升序排列该数组。

我们还可以使用上下文环境来创建可复用的比较函数:

const context = { multiplier: 2 };

function generateComparer(multiplier) {
  return _.comparator(function(num) {
    return num * multiplier;
  }, context);
}

const compareByDoubledNumber = generateComparer(context.multiplier);

const numbers = [3, 1, 4, 2, 5];

numbers.sort(compareByDoubledNumber);

这将按照两倍数字升序排列数组。在此示例中,_.comparator() 方法允许我们用通用的 generateComparer() 函数生成具有不同倍数的可重用比较器。