Sobes.tech
Junior

Дар кадом ҳолатҳо истифодаи усули foreach беҳтар аст?

sobes.tech AI

Ҷавоб аз AI

forEach беҳтарин барои иҷрои амалҳо бо ҳар як унсури массив аст, бе ниёз ба эҷоди массиви нав ё қатъ кардани итератсия.

Инҳоянд чанд ҳолати махсус:

  • Асосҳои паҳншавӣ: Масалан, сабт кардани ҳар унсур, тағир додани объектҳо дар дохили массив (агар массив объектҳо дошта бошад), фиристодани маълумот тавассути шабака барои ҳар унсур.

    const users = [{ id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }];
    
    // Сабт кардани номи ҳар як корбар
    users.forEach(user => {
      console.log(user.name);
    });
    
  • Итератсия дар NodeList ё HTMLCollection: forEach барои ин объектҳо дастрас аст, ки ба мисли document.querySelectorAll баргардонида мешаванд.

    const buttons = document.querySelectorAll('button');
    
    // Илова кардани ҳодисаи клик ба ҳар як тугма
    buttons.forEach(button => {
      button.addEventListener('click', () => {
        console.log('Тугма клик шуд!');
      });
    });
    
  • Вақте ки ниёз ба массиви нав нест: Агар натиҷаи итератсия тағирёбандаи массиви нав набошад, балки танҳо иҷрои амалиёт барои ҳар як унсур бошад, forEach роҳи хондан ва фаҳмидани беҳтар аст, нисбат ба map ё reduce.

  • Барои гузаришҳои оддӣ: Барои гузаришҳои содда, ки дар он индекс танҳо барои мақсадҳои иттилоотӣ ё дар шароитҳои оддӣ зарур аст, forEach метавонад қулай бошад.

    const numbers = [10, 20, 30];
    
    numbers.forEach((number, index) => {
      console.log(`Элемент дар индекс ${index}: ${number}`);
    });
    

Муҳим аст, ки дар ёд дошта бошед, ки forEach арзиши нав намегардонад ва наметавонад мустақиман итератсияро бо break ё return қатъ кунад (дар дохили callback, return танҳо иҷрои итератсияро барои он унсур ба охир мерасонад). Агар ба ин ниёз дошта бошед, дигар усулҳоро, мисли map, filter, reduce, some, every ё циклҳои классикӣ for/while баррасӣ кунед.