In this article, we are given an array of objects and the task is to get the maximum and minimum values from the array of objects. For this approach, we have a few methods that will be discussed below.
Methods to get Min/Max values:
- using JavaScript apply() and Array map()
- using JavaScript Array reduce() Method
- using JavaScript loops
Method 1: Using JavaScript apply() and Array map()
JavaScript apply() Method: This method is different from the function call() because of taking arguments as an array.
Syntax:
apply()JavaScript Array map() Method: This method is used to create a new array with the results of calling a function for each element of the array. This method calls the given function once for each element in an array, in order.
Syntax:
array.map(function(cValue, index, arr), thisValue)Example: This example gets the maximum value of the y property by using apply() and map() methods.
let Arr = [
{ "x": "3/10/2003", "y": 0.023452007 },
{ "x": "8/12/2002", "y": 0.02504234 },
{ "x": "1/16/2001", "y": 0.024533546 },
{ "x": "8/19/2006", "y": 0.03123423457 }];
console.log(JSON.stringify(Arr));
function gfg_Run() {
console.log("Maximum value of y = " +
Math.max.apply(Math, Arr.map(function (event) {
return event.y;
})));
}
gfg_Run();
Output
[{"x":"3/10/2003","y":0.023452007},{"x":"8/12/2002","y":0.02504234},{"x":"1/16/2001","y":0.024533546},{"x":"8/19/2006","y":0.03123423457}]
Maximum value of y = 0.03123423457Method 2: Using JavaScript Array reduce() Method
This method reduces the array to a single value. This method runs a defined function for every value of the array (from left to right). The return value of the function is stored in an accumulator (result or total).
Syntax:
array.reduce(function(total, curValue, curIndex, arr), initialValue)Example: This example gets the minimum value of the y property by using the array.reduce() method. It returns the whole object.
let Arr = [
{ "x": "3/10/2003", "y": 0.023452007 },
{ "x": "8/12/2002", "y": 0.02504234 },
{ "x": "1/16/2001", "y": 0.024533546 },
{ "x": "8/19/2006", "y": 0.03123423457 }];
console.log(JSON.stringify(Arr));
function gfg_Run() {
console.log(JSON.stringify(
Arr.reduce(function (prev, current) {
return (prev.y < current.y) ? prev : current
})));
}
gfg_Run();
Output
[{"x":"3/10/2003","y":0.023452007},{"x":"8/12/2002","y":0.02504234},{"x":"1/16/2001","y":0.024533546},{"x":"8/19/2006","y":0.03123423457}]
{"x":"3/10/2003","y":0.023452007}Method 3: Using JavaScript loops
Example: In this example, we will use JavaScript for loop to get the min and max values from an array of objects
// Input array of objects
let Arr = [
{ "x": "3/10/2003", "y": 0.023452007 },
{ "x": "8/12/2002", "y": 0.02504234 },
{ "x": "1/16/2001", "y": 0.024533546 },
{ "x": "8/19/2006", "y": 0.03123423457 }];
// Initialize min and max values
let maxValue = Arr[0].y;
let minValue = Arr[0].y;
// Getting min and max value using for loops
for (let i = 0; i < Arr.length; i++) {
if (Arr[i].y > maxValue) {
maxValue = Arr[i].y;
}
if (Arr[i].value < minValue) {
minValue = Arr[i].y;
}
}
// Display the output
console.log(Arr)
console.log("Max Value:", maxValue);
console.log("Min Value:", minValue);
Output
[
{ x: '3/10/2003', y: 0.023452007 },
{ x: '8/12/2002', y: 0.02504234 },
{ x: '1/16/2001', y: 0.024533546 },
{ x: '8/19/2006', y: 0.03123423457 }
]
Max Value: 0.03123423457
Min Value: 0.023452...