You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript Redux 分页函数返回时嵌套数组丢失,不返回则正常是什么原因?

问题原因
  • 核心问题出在分页函数的边界值返回逻辑和预期结构不统一:
    你当前的判断条件为arr.length < mr(mr取值为4)时,直接返回原一维数组,而长度>=4时返回嵌套子数组结构。当传入数组长度小于4时,返回值没有嵌套外层数组,你按嵌套结构读取数据时就会出现“嵌套数组丢失”的现象。
  • 补充说明:你注释return results时看到的正确结果是函数内部console.log(results)的输出,此时函数没有显式返回值,外部接收的list实际为undefined,和你取消注释后的逻辑表现完全不同。
修复方案

调整边界值返回逻辑,保证不管数组长度多少,都返回统一的嵌套子数组结构,同时可以简化冗余的pn变量,优化后代码如下:

const paginate = (arr) => {
  const mr = 4;
  const results = []
  const maxPages = Math.ceil(arr.length/mr)
  for(let i = 0; i < maxPages; i++){
    results.push(arr.slice(mr*i, mr*i + mr))
  }
  return results
}

修改后不管数组长度是多少,都会返回符合要求的嵌套结构:

  • 长度为3时返回 [[a,b,c]]
  • 长度为10时返回 [[a,b,c,d], [e,f,g,h], [i,j]]

内容的提问来源于stack exchange,提问作者Juan-Rivera

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 03:36:04