Sparround

Massivlər, obyektlər və destructuring

Test datası demək olar həmişə massiv və obyektlərdir. Ən vacib massiv metodları (hamısı YENİ massiv/dəyər qaytarır, orijinala toxunmur):

  • map — hər elementi çevir: users.map(u => u.email)
  • filter — şərtə uyğunları seç: orders.filter(o => o.status === 'failed')
  • find — ilk uyğun elementi tap (yoxdursa undefined)
  • some / every — ən azı biri / hamısı şərti ödəyirmi (boolean)
  • includes — dəyər massivdə varmı
  • sort — DİQQƏT: orijinalı dəyişir (mutasiya!) və default olaraq string kimi sıralayır: [10, 2].sort()[10, 2]; rəqəm üçün sort((a, b) => a - b)

Destructuring — obyekt/massivdən dəyərləri bir sətirdə çıxarmaq:

  • const { id, email } = user;
  • const [first, second] = rows;
  • Funksiya parametrində: function login({ user, pass }) {...} — Playwright-ın async ({ page }) => {...} sintaksisi məhz budur!

Spread (...) — kopyalama və birləşdirmə: const updated = { ...user, role: 'admin' } (user-in kopyası, role dəyişdirilmiş). Test datası variasiyaları üçün əsas pattern.

Optional chaining (?.) — dərin sahəyə təhlükəsiz çıxış: response.data?.user?.email — aradakı sahə yoxdursa xəta yox, undefined.

Kopya tələsi: const copy = original obyekt üçün kopya DEYİL — hər iki ad eyni obyektə işarə edir. Dayaz kopya: { ...original }. Dərin kopya (iç-içə obyektlər üçün): structuredClone(original). Test datasını mutasiya edən "paylaşılmış obyekt" bug-ları buradan çıxır.

📚 Mənbələr və sənədlər