In this article, we will learn how to search for the max 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:
- Using for loop
- Using Math.max.apply()
- Using reduce() method
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:
javascript
// 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); |
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: It has two parameters:
- thisArg: This argument is used to provide value for the call to the function.
- argsArray: It is an optional parameter. This is an array object used for specifying arguments with which function should be called.
Example:
javascript
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); |
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:
Javascript
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); |
12