Open In App

How to search the max value of an attribute in an array object ?

In this article, we will learn how to search for the maximum value of an attribute in an array object. The maximum value of an attribute in an array of objects can be searched in two ways, one by traversing the array and the other method by using the Math.max.apply() method.

These are the following methods:



Approach 1: Using Loop

In this approach, the array is traversed and the required values of the object are compared for each index of the array.



Example: This example shows the implementation of the above-explained approach.




// Array of object
let arr = [
    {
        a: 10,
        b: 25
    },
    {
        a: 30,
        b: 5
    },
    {
        a: 20,
        b: 15
    },
    {
        a: 50,
        b: 35
    },
    {
        a: 40,
        b: 45
    },
];
 
// Returns max value of
// attribute 'a' in array
function fun(arr) {
    let maxValue = Number.MIN_VALUE;
    for (let i = 0; i < arr.length; i++) {
        if (arr[i].a > maxValue) {
            maxValue = arr[i].a;
        }
    }
    return maxValue;
}
 
let maxValue = fun(arr);
console.log(maxValue);

Output
50

Approach 2: Using Math.max.apply()

In this approach, we find the max value of an attribute by using Math.max.apply() function.

Syntax:

Math.max.apply(thisArg, [ argsArray])

Parameters:

Example: This example shows the implementation of the above-explained approach.




let arr = [
    {
        a: 10,
        b: 25
    },
    {
        a: 30,
        b: 5
    },
    {
        a: 20,
        b: 15
    },
    {
        a: 50,
        b: 35
    },
    {
        a: 40,
        b: 45
    },
];
 
let maxValue = Math.max.apply(null,
    arr.map(function (o) { return o.a; }));
 
console.log(maxValue);

Output
50

Approach 3: Using reduce() method

In this approach, we will use reduce() method with which all the values will be compared, and then, at last, the final value will be stored which further will be stored in a variable that will be output over the console.

Example: This example shows the implementation of the above-explained approach.




let array = [
    { a: 1, b: 2 },
    { a: 2, b: 4 },
    { a: 3, b: 6 },
    { a: 4, b: 8 },
    { a: 5, b: 10 },
    { a: 6, b: 12 },
];
 
let maxValue = array.reduce((acc, value) => {
    return (acc = acc > value.b ? acc : value.b);
}, 0);
 
console.log(maxValue);

Output
12

Approach 4: Using Lodash _.sortBy() method

In this approach, we are using third party librray that is lodash. lodash provides methods for arrays and objects here we are using _.sortBy() method that sort the arrays of object in ascending order. we will get our sorted array of objects by using this method after that we can directlly access the last element if that array as it will be the maximum.

Example: This example shows the implementation of the above-explained approach.




// Array of object
let arr = [
    {
        a: 10,
        b: 25
    },
    {
        a: 30,
        b: 5
    },
    {
        a: 20,
        b: 15
    },
    {
        a: 50,
        b: 35
    },
    {
        a: 40,
        b: 45
    },
];
 
// Returns max value of
// attribute 'a' in array
const _ = require("lodash");
 
 
// Use of _.sortBy() method
let sorted_obj = _.sortBy(arr,
    [function (o) { return o.a; }]);
 
// Printing the output
console.log(sorted_obj[sorted_obj.length-1]);

Output:

{ a: 50, b: 35 }

Article Tags :