По сути, предоставленный вами код циклически проходит по каждому элементу в votes
и проверяет, больше ли он, чем элемент, сохраненный по определенному индексу.Этот индекс хранится в переменной bestIndex
и используется для пометки / отслеживания индекса, который содержит самый большой элемент из всех элементов, видимых при цикле.
В вашем примере ваша троица проверяет, больше ли заданный элемент, чем отмеченный в данный момент самый большой элемент (выполняя v > arr[bestIndex]
).Если это так, то мы устанавливаем индекс текущего элемента как новую позицию самого большого элемента (неявно возвращая i
).Если это не так, мы оставляем индекс самого большого элемента как есть, неявно возвращая bestIndex
.
. Вы можете перевести это в более процедурный стиль программирования, используя циклы for и операторы if.вот так:
let votes = [-4, 10, 100, -3, 40];
let positionOfMax = 0;
for(let i = 0; i < votes.length; i++) {
if(votes[i] > votes[positionOfMax]) { // v > arr[bestIndex]
positionOfMax = i; // ? i (from ternary)
}
/* Not needed
else {posittionOfMax = positionOfMax} // : bestIndex (from ternary)
*/
}
console.log(positionOfMax);
Я рекомендую вам взглянуть на .reduce()
и документацию по условному (троичному) оператору .Это полезные и мощные инструменты, которые могут помочь ускорить вашу разработку.