FOR OF vs. FOR IN vs. FOR EACH

Здравствуйте! Давайте поговорим о методах For of, For in и ForEach для перебора объектов в цикле. Выбираемый нами метод определяется типом объекта, который мы хотим пройти в цикле, и результатом, который мы надеемся получить в результате этого процесса. Давайте рассмотрим каждый из них, чтобы увидеть основные различия.

№1. Для… зацикливания

Операторы For…of перебирают итерируемые объекты, такие как строки и массивы. Синтаксис выглядит следующим образом:

for (variable of iterable) { statement }

Давайте посмотрим демонстрационный пример перебора массива:

Кроме того, мы можем перебирать строки:

Теперь давайте представим, что у нас есть строка «str», которую мы хотим выяснить, все ли буквы алфавита встречаются в строке. Это означает, что мы сначала должны создать массив со всеми буквами алфавита:

Затем мы использовали бы оператор for…of, чтобы пройтись по массиву алфавита, чтобы получить каждый элемент (букву алфавита), и внутри него мы использовали бы метод include, чтобы сравнить, найдена ли каждая буква алфавита в 'str ' нить:

Вывод будет:

#2. Для... в цикле

Оператор For…in очень похож на For…of, главное отличие состоит в том, что он перебирает свойства (ключи) объектов или индексы массивов вместо их значений. Синтаксис аналогичен оператору цикла For..of:

Вот демонстрация его использования:

Примечание:
For…in не рекомендуется перебирать массив, особенно там, где важен порядок индексов. Вместо этого рекомендуется использовать метод «For…of» или «ForEach».

«For…in» в основном используется для целей отладки, особенно для проверки свойств объекта путем вывода на консоль, или для случаев, когда вы хотите проверить, содержит ли какой-либо из ключей объекта определенное значение, используя что-то вроде методов getOwnPropertyNames(), hasOwnProperty() или propertyIsEnumerable(). Тем не менее, ради нашей задачи мы все равно будем использовать его для решения проблемы.

Для нашей задачи давайте переберем алфавиты с помощью оператора For…in, а затем выведем результат:

Наш вывод будет:

Мы видим, что он выводит положение индекса алфавитов в массиве вместо самих алфавитов (значений). Итак, чтобы решить эту проблему, мы будем использовать синтаксис записи скобок массива для объявления значений из их индекса:

Итак, наш вывод теперь будет:

Теперь мы можем использовать метод .includes, чтобы проверить, найден ли каждый алфавит в заданной строке «str»:

Вывод теперь будет выглядеть так:

#3. Цикл ForEach

Метод Array.prototype.forEach() используется в основном для перебора массивов. Он вызывает указанную функцию обратного вызова один раз для каждого элемента массива.

Синтаксис:

Вот демонстрация оператора forEach:

Итак, давайте воспользуемся методом ForEach для перебора алфавитов для нашей задачи, затем мы сравним каждый из алфавитов с нашей строкой «str» с помощью метода .includes, чтобы увидеть, все ли алфавиты содержатся в строке:

Наш вывод будет:

Вывод:
В общем, я предпочитаю использовать циклические операторы For…of, чем два других, потому что это дает мне больше возможностей для циклического перебора многих типов итерируемых элементов; в отличие от ForEach, который в основном подходит для перебора массивов, и For..in, который в основном используется для отладки. Метод цикла For…of также очень лаконичен и кажется более современным в использовании. Итак, для меня, For…of выигрывает день! Но вы можете использовать все, что хотите, тбх. :)

#Конец

Надеюсь, вам понравилось! :) Следуйте за мной для получения дополнительной информации…

Youtube: youtube.com/c/IfeanyiOmeata
LinkedIn: linkedin.com/in/omeatai
Twitter: twitter.com/iomeata
Github: github.com/ omeatai
Stackoverflow: stackoverflow.com/users/2689166/omeatai
Hashnode: hashnode.com/@omeatai
Среда: medium.com/@omeatai
> © 2021

Первоначально опубликовано на https://ifeanyiomeata.hashnode.dev.