📜  Underscore.js _.max函数(1)

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

Underscore.js _.max函数

Underscore.js是很多前端开发者所熟知的一个工具库,它提供了很多常用的功能函数,能够帮助我们更快、更方便地完成开发工作。其中,_.max函数是一个非常实用的函数,用于在一个集合中查找最大值。

语法

Underscore.js _.max函数的语法如下:

_.max(list, [iteratee], [context])

参数说明:

  • list:必填参数,表示要找最大值的集合。可以是一个数组,也可以是一个对象。

  • iteratee:可选参数,是用来确定每个元素的排序依据的函数。如果没有提供该参数,则默认比较元素的大小。

  • context:可选参数,指定iteratee函数的上下文。

返回值

_.max函数会返回被找到的最大值。如果传入的集合是空的,则返回-Infinity

示例

我们可以通过以下几个示例来学习_.max函数的用法。

示例1:比较数字大小

假设我们有一个数组,我们想找到其中最大的数字。我们可以这样使用_.max函数:

var numbers = [1, 2, 3, 4, 5];
var result = _.max(numbers);
console.log(result); // 5

上述代码中,我们没有传入第二个参数iteratee,因为默认情况下,_.max函数会直接比较元素的大小来找到最大值。

示例2:比较对象某个属性的大小

假设我们有一个对象数组,每个对象有nameage两个属性,我们希望找到年龄最大的那个人。我们可以这样使用_.max函数:

var people = [
    {name: 'Andrew', age: 26},
    {name: 'Tom', age: 30},
    {name: 'John', age: 28}
];
var result = _.max(people, function(person) {
    return person.age;
});
console.log(result); // {name: 'Tom', age: 30}

上述代码中,我们传入了一个函数作为第二个参数iteratee,这个函数会根据每个对象的age属性来确定大小关系。

示例3:使用上下文

我们可以通过context参数来指定iteratee函数的上下文。比如,我们有一个数组,每个元素都是一个学生对象,我们希望找到其中分数最高的那个学生,并且在iteratee函数中,需要用到另外一个全局变量extreme。我们可以这样使用_.max函数:

var students = [
    {name: 'Alice', score: 80},
    {name: 'Bob', score: 90},
    {name: 'Charlie', score: 85}
];
var extreme = 100;
var result = _.max(students, function(student) {
    return student.score / extreme;
}, this);
console.log(result); // {name: 'Bob', score: 90}

上述代码中,我们指定了this作为iteratee函数的上下文,并且在函数中用到了外部的变量extreme