2017-03-13 4 views
12

Ich versuche, eine Javascript-Funktion zu schreiben, die eine array, page_size und page_number als Parameter nimmt und gibt ein Array, das ahmt Ergebnisse paginierte:Paginate Javascript Array

paginate: function (array, page_size, page_number) { 
    return result; 
} 

so zum Beispiel bei:

array = [1, 2, 3, 4, 5], 
page size = 2, 
page_number = 2, 

die Funktion sollte zurückkehren: [3, 4].

Irgendwelche Ideen würden geschätzt.

+0

Was bedeutet '[3, 4]' repräsentieren in Bezug auf alle anderen Variablen? Es ist eine Art Schlüssel, dass Sie das explizit erklären –

+0

Verwenden Sie ['Array.slice'] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/slice) ->' array.slice ((page_number - 1) * page_size, page_size) '(so etwas sollte funktionieren) – casraf

+0

@DarrenSweeney Wenn das Array in" Seiten "unterteilt ist, erhalten wir 3 Seiten, wobei jede Seite höchstens die Größe 2 hat: '[1, 2]', '[3, 4]' und '[5]'. Seite Nummer 2 in diesem Szenario wird '[3, 4]' sein. – SalmaFG

Antwort

24

Sie können Array.prototype.slice verwenden und nur die Parameter für (start, end) liefern.

function paginate (array, page_size, page_number) { 
 
    --page_number; // because pages logically start with 1, but technically with 0 
 
    return array.slice(page_number * page_size, (page_number + 1) * page_size); 
 
} 
 

 
console.log(paginate([1, 2, 3, 4, 5, 6], 2, 2)); 
 
console.log(paginate([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], 4, 1));

+1

Genau das habe ich versucht. Vielen Dank! – SalmaFG