Потому что строка 'a'
и целые числа 2,3,4
несопоставимы. Поэтому он всегда возвращает false
В первой функции он возвращает 4
, потому что сначала сравнивается 'a'
и возвращается false
, затем max
назначается 3
Во второй функции он возвращает 'a'
, поскольку 'a'
сравнивается последним.
Вы можете проверить, можно ли преобразовать строку в число, используя Number()
или parseInt()
const arr = ['a', 3, 4, 2];
function biggestNumberInArray2(arr) {
let max=0;
for (let i = arr.length - 1; i >= 0; i--) {
const comparable = Number(arr[i]) || -99
max = max > comparable ? max : comparable;
}
return max;
}
console.log(biggestNumberInArray2(arr))