当前位置: 首页 > news >正文

javascript数据类型错误造成的前端分页不准的问题

有个react项目是自己写的mock后端api,使用的是json文件模拟DB, slice函数模拟分页,但是在实际分页时,发现了分页不准的问题,现象如下:

当pageSize为5的时候(共16条数据),总共分4页,但是在前端切换分页按钮时,有如下问题:

1. 跳到第二页: api返回11条数据

2. 跳到第三页时: api返回6条数据

 

 这明显有问题,按道理说应该是前三页应该:每页都返回5条数据才对

到底哪里出了问题呢,于是开始对api服务端代码开启debug调试,在可疑处打断点:

发现入参pageNumber和pageSize是字符串类型,不是数字类型!

 严重怀疑是数据类型错误造成的问题,所以继续往下调试:

可以看到第135行的计算结果是16,这个明显不对,让我们来分析一下其中的原因:

startIndex是数字: 5

pageSize:是字符串:"5"

baseData.length(baseData中有16条数据):  16

那么计算一下 5 + "5"的结果是多少:

 

 可看到 5 + "5" = "55", 所以在取最小值时: Math.min("55", 16), 得出的结果就是16。

所以slice分页的起始索引就变成了slice(5, 16) , 也就是11条数据

然而我们期待的应该是两个数字类型的相加 :5+5 =10 ,那Math.min(10,16)的结果就是10,这才是我们想要的结果。

所以到此为止,真相已经清楚了: 就是入参数据类型的错误造成了分页不准的问题。

解决办法很简单:通过parseInt函数提前把入参从String类型转化成整数类型

  pageNumber = parseInt(pageNumber)

  pageSize = parseInt(pageSize)

 

 此时问题解决:

总结:在Javascript涉及到数字运算时,一定要特别小心,一定确保所有参与运算的元素提前转化成数字类型如果有字符串类型混入其中,就会造成计算结果错误的严重问题。

相关文章:

javascript数据类型错误造成的前端分页不准的问题

有个react项目是自己写的mock后端api,使用的是json文件模拟DB, slice函数模拟分页,但是在实际分页时,发现了分页不准的问题,现象如下: 当pageSize为5的时候(共16条数据),总共分4页&…...

[Qt]QListView 重绘实例之二:列表项覆盖的问题处理

0 环境 Windows 11Qt 5.15.2 MinGW x64 1 系列文章 简介:本系列文章,是以纯代码方式实现 Qt 控件的重构,尽量不使用 Qss 方式。 《[Qt]QListView 重绘实例之一:背景重绘》 《[Qt]QListView 重绘实例之二:列表项覆…...

Java 函数式编程思考 —— 授人以渔

引言 最近在使用函数式编程时,突然有了一点心得体会,简单说,用好了函数式编程,可以极大的实现方法调用的解耦,业务逻辑高度内聚,同时减少不必要的分支语句(if-else)。 一、函数式编…...

操作系统权限提升(二十八)之数据库提权-SQL Server 数据库安装

SQL Server 数据库安装 SQL Server介绍 SQL Server 是Microsoft 公司推出的关系型数据库管理系统。具有使用方便可伸缩性好与相关软件集成程度高等优点,可跨越从运行Microsoft Windows 98 的膝上型电脑到运行Microsoft Windows 2012 的大型多处理器的服务器等多种平台使用。…...

腾讯mini项目-【指标监控服务重构-会议记录】2023-08-18

2023-08-18 会议纪要 进度 venus 的 metrics 独立分支开发venus 的 trace 修复了一些bug 返回 error 主动调用 span.end() profile 的 watemill pub/sub 和 trace 上报还原原本功能profile 的 hyperscan 的继续调研 待办 调研如何关闭otel,设置开关配置性能benc…...

如何通过axios拦截器,给除了登录请求以外,axios的所有异步请求添加JWT令牌!

在 Vue 项目中配置除了登录请求以外的所有请求的令牌,通常涉及到在请求头中添加令牌(Token)信息。这可以通过使用 Axios 或其他 HTTP 请求库来实现。以下是一般的步骤: 1. **安装 Axios**: 如果你还没有安装 Axios&a…...

Spring学习笔记9 SpringIOC注解式开发

Spring学习笔记8 Bean的循环依赖问题_biubiubiu0706的博客-CSDN博客 注解的存在主要是为了简化XML的配置.Spring6倡导全注解式开发 回顾下 注解怎么定义,注解中的属性怎么定义 注解怎么使用 通过反射机制怎么读取注解 注解的自定义 注解的使用 通过反射机制怎么读取注解 I…...

【新日标习题集】第13課 までのまとめ (discarded)

2. 学校にコンピューターがごだいあります。 这个句子好像有点问题,辞典中没有查到有「ごだい」这个单词 学校里有5台电脑。 5. わたしは英語がよくわかります。 我很懂英语。...

Java基础常考知识点(基础、集合、异常、JVM)

作者:逍遥Sean 简介:一个主修Java的Web网站\游戏服务器后端开发者 主页:https://blog.csdn.net/Ureliable 觉得博主文章不错的话,可以三连支持一下~ 如有需要我的支持,请私信或评论留言! Java基础常考知识点…...

虚拟机桥接模式下没有无线网卡选项

我以为是雷电模拟器占用了网卡的缘故,但想起之前可能修改了无线网卡的某些内容,于是到网络属性里面查看。 如下所示,原来是之前我不小心把这个红箭头指向的项目取消勾选了。...

设计模式笔记

关于设计模式 1. 如何阅读本文 略 2. 面向对象程序设计简介 2.1 面向对象程序设计基础 面向对象程序设计 (Object-Oriented Programming,缩写为 OOP)是一种范式,其基本理念是将 数据块 及 与数据相关的行为 封装成为特殊的、…...

c==ubuntu+vscode debug redis7源码

新建.vscode文件夹,创建launch.json和tasks.json {"version": "0.2.0","configurations": [{"name": "C/C Launch","type": "cppdbg","request": "launch","prog…...

java字符串储存底层原理

字符串原理:原理1: 内存原理 (1)直接赋值给字符串,会把这个字符串放到常量池里,如果之后出现重复使用这个字符串的,就会直接从这个常量池中去引用,不会再去new一个字符串 (2)new出来的字符串不会重复使用,而是开辟一个新的空间存储原理2: 字符串中的""比较的是什么?…...

c++获取当前时间的字符串

代码 void getNowTimePrefix(std::string& prefix) {std::time_t nowTime;struct tm* p new tm;std::time(&nowTime);localtime_s(p, &nowTime);int year p->tm_year 1900;int month p->tm_mon 1;int day p->tm_mday;int hour p->tm_hour;int …...

【精品】通用Mapper 批量更新bug解决方案

问题描述 环境:mysql8.xmybatis3.5.13tk.mybatis4.2.3 在使用tk.mybatis做批量更新时,程序会报错,说是执行的SQL语法错误,经研究源代码发现tk.mybatis在实现批量更新时是通过多次执行update语句实现的。这本身就不符合MySQL批量…...

腾讯mini项目-【指标监控服务重构-会议记录】2023-07-06

7/6 会议记录 Profile4个步骤 解压kafka消息初始化性能事件,分析事件将数据写入kafkaRun 开始执行各stage handler 上报耗时到otel-collector。。。 // ConsumerDispatchHandler consumer // // param msg *sarama.ConsumerMessage // param consumer *databus.K…...

【React】函数式组件和类式组件的用法和逻辑

组件的使用 当应用是以多组件的方式实现&#xff0c;这个应用就是一个组件化的应用 注意&#xff1a; 组件名必须是首字母大写虚拟DOM元素只能有一个根元素虚拟DOM元素必须有结束标签 < /> 渲染类组件标签的基本流程React 内部会创建组件实例对象调用render()得到虚拟 …...

题目 1061: 二级C语言-计负均正

从键盘输入任意20个整型数&#xff0c;统计其中的负数个数并求所有正数的平均值。 保留两位小数 样例输入 1 2 3 4 5 6 7 8 9 10 -1 -2 -3 -4 -5 -6 -7 -8 -9 -10 样例输出 10 5.50 解题思路&#xff1a; 如题所示&#xff0c;输入20个正负数&#xff0c;---》求付数的个…...

数位和(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…...

[牛客复盘] 牛客周赛round13 20230924

[牛客复盘] 牛客周赛round13 20230924 总结矩阵转置置2. 思路分析3. 代码实现 小红买基金1. 题目描述2. 思路分析3. 代码实现 小红的密码修改1. 题目描述2. 思路分析3. 代码实现 小红的转账设置方式1. 题目描述2. 思路分析3. 代码实现 小红打boss1. 题目描述2. 思路分析3. 代码…...

DecompilerMC:揭秘Minecraft源码反编译的高效方案

DecompilerMC&#xff1a;揭秘Minecraft源码反编译的高效方案 【免费下载链接】DecompilerMC This repository allows you to decompile any minecraft version that was published after 19w36a without any 3rd party mappings, you just need to execute the script or the …...

Qwen3-VL-8B在软件测试中的应用:自动生成测试用例与缺陷报告截图分析

Qwen3-VL-8B在软件测试中的应用&#xff1a;自动生成测试用例与缺陷报告截图分析 最近和几个做软件测试的朋友聊天&#xff0c;大家普遍都在吐槽一件事&#xff1a;写测试用例和缺陷报告太费时间了。尤其是现在敏捷开发节奏快&#xff0c;版本迭代频繁&#xff0c;测试人员不仅…...

MT5工具实战:快速生成文案变体,提升内容创作效率

MT5工具实战&#xff1a;快速生成文案变体&#xff0c;提升内容创作效率 1. 为什么你需要文案变体生成工具&#xff1f; 在日常内容创作中&#xff0c;我们经常面临一个共同挑战&#xff1a;如何用不同方式表达相同的意思。无论是营销文案、产品描述还是社交媒体内容&#xf…...

Nunchaku-flux-1-dev时序预测可视化:结合LSTM生成数据趋势图

Nunchaku-flux-1-dev时序预测可视化&#xff1a;结合LSTM生成数据趋势图 你有没有遇到过这种情况&#xff1f;辛辛苦苦用LSTM模型跑出了一份股票价格预测数据&#xff0c;或者是一份未来一周的天气变化趋势&#xff0c;结果拿给老板或者同事看的时候&#xff0c;他们对着密密麻…...

OpenClaw配置备份指南:gemma-3-12b-it模型迁移与快速恢复

OpenClaw配置备份指南&#xff1a;gemma-3-12b-it模型迁移与快速恢复 1. 为什么需要备份OpenClaw配置&#xff1f; 上周我的主力开发机突然硬盘故障&#xff0c;导致精心调校的OpenClaw配置全部丢失。整整两天时间&#xff0c;我都在重新配置模型参数、飞书通道和自定义技能—…...

FMCW激光雷达深度剖析:从硅光芯片到车载落地的技术跃迁

1. FMCW激光雷达的技术本质&#xff1a;从硅光芯片到系统集成 第一次拆解FMCW激光雷达时&#xff0c;我被它的内部结构震撼到了——这哪里是传统意义上的激光雷达&#xff1f;分明是一个高度集成的光通信模块。与传统TOF激光雷达相比&#xff0c;FMCW最核心的突破在于它把测距原…...

MAI-UI-8B应用案例:医疗登记表智能填充实战

MAI-UI-8B应用案例&#xff1a;医疗登记表智能填充实战 1. 医疗表单处理的痛点与解决方案 在医疗信息化系统中&#xff0c;患者登记表是每个医疗机构每天都要处理的基础文档。传统方式下&#xff0c;医护人员需要手动填写大量重复信息&#xff0c;不仅效率低下&#xff0c;还…...

STM32定时器编码器模式:从ARR寄存器到精准测速的实战解析

1. STM32编码器模式基础认知 第一次接触STM32的编码器接口时&#xff0c;我完全被那些专业术语搞懵了。什么正交解码、自动重装值、计数方向&#xff0c;听起来就像天书。但当我真正用起来才发现&#xff0c;这玩意儿简直就是为电机测速量身定做的神器。 编码器模式本质上就是定…...

告别鼠标流!用STM32CubeIDE快捷键玩转代码导航与重构(实战演示)

告别鼠标流&#xff01;用STM32CubeIDE快捷键玩转代码导航与重构&#xff08;实战演示&#xff09; 在嵌入式开发的世界里&#xff0c;效率就是生命线。当你面对一个庞大的STM32工程&#xff0c;频繁在数千行代码中穿梭时&#xff0c;每一次不必要的鼠标点击都在蚕食宝贵的开发…...

OpenClaw语音交互:千问3.5-9B+Whisper实现声控自动化

OpenClaw语音交互&#xff1a;千问3.5-9BWhisper实现声控自动化 1. 为什么需要语音交互的自动化助手 去年冬天的一个深夜&#xff0c;我正蜷在沙发上用笔记本处理文件&#xff0c;突然意识到一个问题——当双手被热咖啡和零食占据时&#xff0c;想要快速调取电脑里的资料变得…...