Sometimes, we want to return the index of the greatest value in a JavaScript array.
In this article, we’ll look at how to return the index of the greater value in a JavaScript array.
Use the Array.prototype.indexOf and Math.max Methods
We can find the index of the greatest value in a JavaScript array with the Math.max and the array’s indexOf method.
For instance, we can write:
const arr = [0, 21, 22, 7];
const index = arr.indexOf(Math.max(...arr));
console.log(index)
We call Math.max with the elements of arr in as arguments by spreading arr into the Math.max method.
This returns the greatest element in arr .
And then we can call arr.indexOf on the greatest element of arr .
And so index is 2, which is the index of value 22 in arr .
Use the Array.prototype.reduce Method
Another way to get the index of the greatest element in an array is to use the JavaScript array’s reduce method.
To use it, we write:
const arr = [0, 21, 22, 7];
const index = arr.reduce((iMax, x, i, arr) => x > arr[iMax] ? i : iMax, 0);
console.log(index)
We call reduce on arr with a callback that has the iMax parameter, which is the index of the greatest value of arr so far.
x is the entry of arr being iterated through.
i is the index of x .
arr is the arr array itself.
We return the index of the greatest element by checking if x is bigger than the current element being recorded as the largest so bar, which is arr[iMax] .
If x is bigger than arr[iMax] , we return i .
Otherwise, we return iMax .
0 is the initial value of the index of the greatest element of arr .
And so index is 2 as we saw in the previous example.
Conclusion
We can use the Math.max and Array.prototype.indexOf or Array.prototype.reduce methods to get the index of the greatest elements in a JavaScript array.