Latihan 1 dari materi Virtual Scrolling di Performance — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.
Lengkapi function getVisibleItems(scrollTop, containerHeight, itemHeight, totalItems) yang menghitung baris mana yang perlu dirender.
startIndex: Math.floor(scrollTop / itemHeight).
Banyak baris yang dirender: Math.ceil(containerHeight / itemHeight) + 1 (1 baris cadangan).
endIndex: startIndex ditambah banyak baris itu, tapi gak boleh lebih dari totalItems. Pakai Math.min.
offsetY: startIndex * itemHeight.
visibleCount: endIndex - startIndex.
Return satu object dengan key persis ini, dengan urutan ini: startIndex, endIndex, offsetY, visibleCount.
ada juga cek tersembunyi di ujung list: getVisibleItems(49500, 500, 50, 1000) harus { startIndex: 990, endIndex: 1000, offsetY: 49500, visibleCount: 10 }
Dua baris console.log di kode awal biarkan saja.
Hint
Mulai dari baris pertama yang kelihatan: berapa baris setinggi itemHeight yang sudah tergulung ke atas sejauh scrollTop? Lalu hitung berapa baris yang muat di kotak, tambah satu cadangan.