Sobes.tech
Junior

Какви видове for цикли знаете в JavaScript?

sobes.tech AI

Отговор от AI

В JavaScript има няколко разновидности на цикъла for:

  • for (класически): Използва се за итерация по числов диапазон или за изпълнение на действие определен брой пъти.

    // Итерация по числов диапазон
    for (let i = 0; i < 5; i++) {
      console.log(i); // 0, 1, 2, 3, 4
    }
    
  • for...in: Обхожда ключовете (свойствата) на изброимите свойства на обект (включително свойствата на прототипа). Не се препоръчва за итерация по масиви поради потенциални проблеми с реда и изброяването на нечислови свойства.

    const obj = { a: 1, b: 2, c: 3 };
    for (const key in obj) {
      console.log(`${key}: ${obj[key]}`);
      // a: 1
      // b: 2
      // c: 3
    }
    
    const arr = ['ябълка', 'банан', 'портокал'];
    for (const index in arr) {
      console.log(index); // 0, 1, 2 (ключовете в този случай са индексите)
    }
    
  • for...of: Обхожда стойностите на итерируеми обекти като масиви, низове, Map, Set, TypedArray и аргументи. Препоръчва се за итерация по масиви.

    const arr = ['ябълка', 'банан', 'портокал'];
    for (const element of arr) {
      console.log(element);
      // ябълка
      // банан
      // портокал
    }
    
    const str = "здравей";
    for (const char of str) {
      console.log(char);
      // з
      // д
      // р
      // а
      // в
      // е
      // й
    }
    

Таблица за сравнение:

Цикъл Назначение Обхванати елементи Препоръчително за
for Итерация по числов диапазон, повторение Определен брой пъти Общи цикли
for...in Обхождане на ключове (свойства) на обекти Ключове (свойства) Обекти
for...of Обхождане на стойностите на итерируеми обекти Стойности Масиви, низове, Map, Set