Итак, как вы пишете итерацию в java-скрипте? Давайте посмотрим, как можно использовать циклы.
Рассмотрим массив, и нам нужно вывести имена.

let persons = [
    {
        name: "Jon Doe",
        id: 1
    }, {
        name: "Alex Robert",
        id: 2
    }
]

Давайте повторим это с помощью традиционного цикла for.

for (let i = 0; i < persons.length; i++) {
 console.log(persons[i].name)
}
/* Output
Jon Doe
Alex Robert
*/

Теперь позвольте повторить это с помощью цикла for… in.

for (let person in persons) {
 console.log(persons[person].name)
}

Выход будет таким же. Давайте подробно обсудим цикл for… in

Цикл for...in выполняет итерацию только по перечислимым свойствам. Поэтому рекомендуется перебирать свойства объекта. Индексы массивов - это просто перечислимые свойства с целочисленными именами, которые в остальном идентичны общим свойствам объекта. Нет гарантии, что for...in вернет индексы в каком-либо определенном порядке. Оператор цикла for...in вернет все перечислимые свойства, включая свойства с нецелочисленными именами и наследуемые.

Вот почему у нас есть for...of цикл. Давайте подождем некоторое время. Давайте продолжим цикл for...in, он перебирает объект и строку. Давайте посмотрим на примере.

Нить

const string = 'Ire Aderinokun';

for (const index in string) {  
    console.log(string[index])
}

// Result: I, r, e, , A, d, e, r, i, n, o, k, u, n

Объект

const obj = {  
    a: 1,
    b: 2,
    c: 3,
    d: 4
}

for (const key in obj) {  
    console.log( obj[key] )
}

// Result: 1, 2, 3, 4 

Вот где мы должны использовать цикл for...in.

Вернуться к… из

Он введен в ES2015 для перебора «повторяемых коллекций». Это объекты, у которых есть свойство [Symbol.iterator]. Например массивы.

Давайте посмотрим, как это кодировать.

const array = ['a', 'b', 'c', 'd'];  
for (const item of array) {  
    console.log(item)
}
// Result: a, b, c, d

Он работает так же, как цикл for с правильно сопоставленными индексами. Еще одна особенность: он также работает со строкой.

const string = 'Ire Aderinokun';  
for (const character of string) {  
    console.log(character)
}
// Result: I, r, e, , A, d, e, r, i, n, o, k, u, n

Давайте сравним оба.

цикл forEach

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

Это полезно в ситуациях, когда мы хотим перебирать целые массивы и выполнять работу в качестве функции обратного вызова, и это улучшает читаемость. Но подождите…

У нас ситуация, я хочу пораньше выйти из петли. Представьте, что у меня есть более длинный список продуктов, и как только я найду тот, который соответствует некоторым критериям, я хочу выполнить какое-то действие. Если бы я использовал forEach(), он перебирал бы каждый отдельный продукт, что приводило бы к ненужным итерациям, потенциально вызывая проблемы с производительностью в зависимости от длины массива. Так что в этом случае лучше всего подходит цикл for или цикл for..of.

Давайте посмотрим на синтаксис.

arr.forEach(function (item) {
  someFn(item);
})

В роуминге я нашел тест для сравнения обоих шлейфов. Здесь ты найдешь. Результаты, достижения.

Это все, ребята. Теперь вы знаете, как выполнять итерацию в javascript.

Надеюсь, тебе понравится, хлопай, поделись.
Было бы очень приятно, если бы вы оставили отзыв об этом.

Спасибо!