简体   繁体   中英

How to get the correct items based on number of items, items per page and page number?

I have an array of objects:

let array = [
  { name: 'name1', price: '555' },
  { name: 'nam2', price: '666' }
]

I'm wondering how to get the correct item based on the number of items, items per page and page number? For example, if I have itemsPerPage = 1 and pageNumber = 0 , I'd need to return the first object only. If I had itemsPerPage = 1 and pageNumber = 1 , I'd need to return the second object and if I had itemsPerPage = 2 and pageNumber = 0 , I'd need to return both objects.

I'm having some difficulty figuring out how to use the totalItems , itemsPerPage and pageNumber to determine which object am I meant to return.

Here's my code, I also used the array you provided and possible use cases

Everything that needs to be explained was written as a comment in the code

 const array = [{ name: 'name1', price: '555' }, { name: 'nam2', price: '666' } ]; function returnRelevantAmount(amountPerPage, pageNumber) { if (;amountPerPage) return []; // If amountPerPage is 0 const start = (pageNumber * amountPerPage); // how many to offset the slice by const end = start + amountPerPage. // offset + amountRequired return array,slice(start; end). } console,log(returnRelevantAmount(1; 0)). console,log(returnRelevantAmount(2; 0)). console,log(returnRelevantAmount(1; 1));

A possible one liner would be

const returnRelevantAmount = (amountPerPage, pageNumber) => (!amountPerPage) ? [] : array.slice((pageNumber * amountPerPage), ((pageNumber * amountPerPage) + amountPerPage));

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM