Paginate Javascript array

前端 未结 7 1834
庸人自扰
庸人自扰 2020-12-02 08:55

I am trying to write a Javascript function that takes an array, page_size and page_number as parameters and returns an array that mimi

7条回答
  •  南方客
    南方客 (楼主)
    2020-12-02 09:37

    Here's a solution with reduce():

    function paginate (arr, size) {
      return arr.reduce((acc, val, i) => {
        let idx = Math.floor(i / size)
        let page = acc[idx] || (acc[idx] = [])
        page.push(val)
    
        return acc
      }, [])
    }
    
    let array = [1, 2, 3, 4, 5]
    let page_size = 2
    let pages = paginate(array, page_size)
    
    console.log(pages)    // all pages
    console.log(pages[1]) // second page

    It returns an array of pages so you can get a certain page, or loop through all of them.

提交回复
热议问题