Horje
How to Get Index of the Max Value in Array of Objects ?

When dealing with arrays of objects in JavaScript, it’s common to need the index of the object with the maximum value based on a certain property.

Below are the approaches to get the index of the max value in an array of objects:

Using a Loop

This approach iterates through the array of objects using a simple for loop. It keeps track of the index of an object with the maximum value based on the specified property.

Example: The below code uses a for loop to iterate over the array of objects and get the index of the max value.

Javascript

function indexOfMax(arr, prop) {
    let max = -Infinity;
    let index = -1;
    for (let i = 0; i < arr.length; i++) {
        if (arr[i][prop] > max) {
            max = arr[i][prop];
            index = i;
        }
    }
    return index;
}
 
const employees = [
    { name: 'John', salary: 50000 },
    { name: 'Alice', salary: 70000 },
    { name: 'Bob', salary: 60000 }
];
 
const maxSalaryIndex =
    indexOfMax(employees, 'salary');
console.log("Index of employee with highest salary:",
    maxSalaryIndex);

Output

Index of employee with highest salary: 1

Using Array.reduce() Method

Array.reduce() is a powerful method in JavaScript used to reduce the elements of an array to a single value. It executes a provided function for each value of the array and accumulates a single result.

Syntax:

Array.reduce(callbackFunction, initialValue)

Example: The below code explains the use of the reduce() method to get the index of the max value in an array of objects.

Javascript

function indexOfMax(arr, prop) {
    return arr.reduce(
        (maxIndex, current, currentIndex, array) => {
            return current[prop] >
            array[maxIndex][prop] ? currentIndex :
            maxIndex;
    }, 0);
}
 
const people = [
    { name: 'Alice', age: 30 },
    { name: 'Bob', age: 40 },
    { name: 'John', age: 35 }
];
 
const maxAgeIndex =
    indexOfMax(people, 'age');
console.log("Index of person with maximum age:",
    maxAgeIndex);

Output

Index of person with maximum age: 1



Reffered: https://www.geeksforgeeks.org


JavaScript

Related
Convert Dictionary into an Array of objects in JavaScript Convert Dictionary into an Array of objects in JavaScript
How to Compare Two Date Strings in TypeScript ? How to Compare Two Date Strings in TypeScript ?
How to Disable Input in JavaScript ? How to Disable Input in JavaScript ?
How to Convert String to Date in TypeScript ? How to Convert String to Date in TypeScript ?
JavaScript Program to Copy all Nodes of a Linked List JavaScript Program to Copy all Nodes of a Linked List

Type:
Geek
Category:
Coding
Sub Category:
Tutorial
Uploaded by:
Admin
Views:
13