Привет, ребята, сегодня я хочу показать вам, как найти наибольшее число в массиве с помощью рекурсии.
Ну, я нашел этот вопрос сегодня, а затем искал в 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