Шпаргалка по итераторам массивов JS — Часть 1

Методы итератора полезны и немного сбивают с толку, если вы не понимаете небольшие различия между ними. В этой шпаргалке обсуждаются контрастные различия между forEach , map , filter и some.

Перед началом..

«Вы должны разучиться тому, чему научились» — Йода

Вот несколько ключевых слов, используемых в этой статье, и их значение —

  • обратный вызов — функция, которая будет вызвана после выполнения текущего кода.
  • Chainable — метод передачи возвращаемого значения другой функции.
  • Мутация — изменение и замена исходного значения.

🥨 Array.prototype.forEach

  • Использование: альтернатива for с преимуществами области действия. Используйте это для вызовов ajax, операций установки/получения, которые должны выполняться для каждого элемента массива, и используйте это, когда никакая другая функция не соответствует вашим потребностям.
  • Возвраты:undefined
  • Мутация: не изменяет предоставленный массив.
  • Разрыв цикла:невозможно пропустить выполнение цикла.
  • Chainable:невозможно, так как возвращает undefined
  • Изменение значений массива во время итерации:
"Breath-in and breath-out before you read this" 😇
1. Any new data added to the array while the loop execution will be ignored. 
2. Any data modified or deleted will be provided chainable to the forEach when forEach visits it. 
3. Any modifications to the processed data will be ignored and deletion of the processed element might make the next element in the loop to be skipped due to the change of index.

  • Пустые массивы/элементы:будут игнорироваться.
  • undefined/null:будет рассмотрено.
  • Асинхронный: не будет поддерживаться.

🍱 Массив.прототип.карта

  • Использование:используйте это, когда хотите преобразовать данный массив. Если вы используете case, чтобы ничего не возвращать, используйте forEach или for...of
  • Возвращает:Array и массив undefined's, если обратный вызов ничего не возвращает.
  • Мутация: не изменяет предоставленный массив.
  • Разрыв цикла:невозможно пропустить выполнение цикла.
  • С возможностью создания цепочки: да
  • Изменение значений массива во время итерации:то же, что и forEach
  • Пустые массивы/элементы:будут игнорироваться.
  • undefined/null:будет рассмотрено.

🥢 Массив.прототип.фильтр

  • Применение: для фильтрации массива на основе заданного условия. Если вам нужно вернуть первый совпадающий элемент, используйте Array.prototype.find().
  • Возвращает:Array и пустой массив, если ничего не фильтруется или обратный вызов не возвращает
  • Мутация: не изменяет предоставленный массив.
  • Разрыв цикла:невозможно пропустить выполнение цикла.
  • С возможностью создания цепочки: да
  • Изменение значений массива при итерации:то же, что и forEach
  • Пустые массивы/элементы:будут игнорироваться.
  • undefined/null:будет рассмотрено.

🧃 Массив.прототип.некоторые

  • Использование: возвращает true, если хотя бы один элемент соответствует заданному условию в обратном вызове, или false
  • Возвраты:boolean
  • Мутация: не изменяет предоставленный массив.
  • Разрыв цикла:невозможно пропустить выполнение цикла.
  • С возможностью создания цепочки: да
  • Изменение значений массива при итерации:то же, что и forEach
  • Пустые массивы/элементы:будут игнорироваться.
  • undefined/null:будет рассмотрено.

Диаграмма решений для массивов

Если вы новичок, то когда-нибудь возникнет некоторая путаница в отношении того, какой метод итератора следует использовать. Сделал диаграмму решений для того же. Надеюсь поможет 🙏

Надеюсь, вам понравилась статья, поделитесь своим мнением в комментариях.

Удачи 🙌
КД