View Single Post
Dette hadde nok vært mye enklere med et rammeverk som Vue eller React. Men om jeg skulle løst det uten ville jeg gjort noe sånt:

Kode

const items = []; // Liste med all data.

const renderRows = function(filterValue = false, limit = 8) {
  const itemsToRender = items.filter(function(item) {
    if (filterValue) {
      // Gjør en sjekk om item matcher filterValue.
      return true; // Eller false om item ikke matcher.
    }
    return true; // Har du ikke satt noe filter tar du med alle.
  }).slice(0, limit); // Kutter ned resultatene til de 8 første.

  // itemsToRender inneholder nå de elementene som matcher filterer og er begrenset til så mange du vil ha.

  // Kode for å generere rader i tabellen.
};
Så når brukeren gjør en endring på filteret kaller du funksjonen og tegner opp tabellen på nytt. Da trenger du ikke ta hensyn til at linje 10 skulle være først i en filtrering.