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.