Привет, ребята, сегодня я хочу показать вам, как найти наибольшее число в массиве с помощью рекурсии.
Ну, я нашел этот вопрос сегодня, а затем искал в stackoverflow😂 и нашел это решение, а затем попытался понять это решение.
Давайте начнем…
Код -
const findMax = arr => { if (!Array.isArray(arr)) throw 'Not an array' if (arr.length === 0) return undefined const [head, ...tail] = arr if (arr.length === 1) return head return head > findMax(tail) ? head : findMax(tail) }
console.log(findMax([1,9,10,28,78,10]))
Работающий -
- Сначала мы проверим, является ли переданный аргумент стрелкой или нет, если это не массив, то выдайте ошибку
- Затем мы проверим, равна ли длина массива 0, если да, вернём undefined.
- В следующей строке мы деструктурировали массив на две части — голова и хвост, голова содержит первый элемент массива, а …хвост содержит остальную часть массива
- После этого мы проверяем, что если длина массива равна 1, то мы вернем голову (первый и единственный элемент этого массива)
- Затем мы использовали тернарный оператор, чтобы обеспечить условие, если заголовок больше, чем findMax(tail), что означает, что элемент head является первым элементом, а findMax(tail) даст первый элемент из хвостового массива, который является следующим элементом jsut после что, поэтому мы сравним эти два, если условие истинно, мы вернем элемент головы как самый большой, а если условие ложно, мы рекурсивно проверим хвост и используем первый элемент этого массива как голову, а остальные как другой хвостовой элемент
- Итак, рекурсивно он проверит и сравнит все элементы в массиве и даст нам самый большой из них.
Это выглядит довольно запутанно, и я изо всех сил старался объяснить, и если вы обнаружите, что что-то не так, пожалуйста, исправьте это в разделе комментариев.
Простой и быстрый подход
const findMax = array => Math.max(...array);
СПАСИБО, ЧТО ПРОВЕРИЛИ ЭТОТ ПОСТ
^^ Вы можете помочь мне пожертвованием по ссылке ниже Спасибо👇👇 ^^
☕ → https://www.buymeacoffee.com/waaduheck ←
Также проверьте эти сообщения
https://dev.to/shubhamtiwari909/javascript-map-with-filter-2jgo
https://dev.to/shubhamtiwari909/e-quotes-3bng
https://dev.to/shubhamtiwari909/deploy-react-app-on-netlify-kl