【问题标题】:How to get up to 3 first and last items from an array如何从数组中获取最多 3 个第一个和最后一个项目
【发布时间】:2021-07-02 21:24:56
【问题描述】:

我正在使用 react 进行分页。我想显示前 3 页,然后显示三个点,当用户单击它们将成为输入的点时,用户可以输入页码,最后是最后 3 页。像这样:

<< 1 2 3 ... 10 11 12 >>

但使用我当前的代码如果我有 4 页的数组。我明白了:

<< 1 2 3 ... 2 3 4 >>

如何处理这种情况?有什么建议吗?

const pagesArr = [...Array(data.pageCount).keys()].map((x) => ++x); // [1, 2, 3, ... 10, 11, 12]

<>
{pagesArr.slice(0, 3).map((p) => (
  <a
    key={p}
    href='#'
    className='z-10 bg-indigo-50 border-indigo-500 text-indigo-600 relative inline-flex items-center px-4 py-2 border text-sm font-medium'
  >
    {p}
  </a>
))}
{pagesArr.length > 6 && (
  <span className='relative inline-flex items-center px-4 py-2 border border-gray-300 bg-white text-sm font-medium text-gray-700'>
    ...
  </span>
)}
{pagesArr.slice(Math.max(pagesArr.length - 3, 1)).map((p) => (
  <a
    key={p}
    href='#'
    className='z-10 bg-indigo-50 border-indigo-500 text-indigo-600 relative inline-flex items-center px-4 py-2 border text-sm font-medium'
  >
    {p}
  </a>
))}
</>

【问题讨论】:

    标签: arrays reactjs pagination


    【解决方案1】:

    我猜你只是检查 pagesArr.length > 6,如果不是则映射所有 6?

    【讨论】:

    • 我明白了。所以你说如果少于6页。只需遍历页面。但如果超过 6 页,请使用当前代码。对吗?
    • 没错!因为您也不需要 6 页的省略号
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-06
    • 2013-12-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-04
    • 2019-03-09
    • 1970-01-01
    相关资源
    最近更新 更多