当前位置: 首页 > 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. 代码…...

mybatsi-MyBatis的逆向工程

mybatsi-MyBatis的逆向工程 一、前言二、创建逆向工程的步骤1.添加依赖和插件2.创建MyBatis的核心配置文件3.创建逆向工程的配置文件4.执行MBG插件的generate目标 一、前言 正向工程&#xff1a;先创建Java实体类&#xff0c;由框架负责根据实体类生成数据库表。 Hibernate是支…...

转转闲鱼交易猫链接源码 支持二维码收款

最新仿二手闲置链接源码 后台一键生成链接&#xff0c;后台管理教程&#xff1a;解压源码&#xff0c;修改数据库config/Congig 不会可以看源码里有教程 下载程序&#xff1a;https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3...

Python爬虫基础(三):使用Selenium动态加载网页

文章目录 系列文章索引一、Selenium简介1、什么是selenium&#xff1f;2、为什么使用selenium3、安装selenium&#xff08;1&#xff09;谷歌浏览器驱动下载安装&#xff08;2&#xff09;安装selenium 二、Selenium使用1、简单使用2、元素定位3、获取元素信息4、交互 三、Phan…...

Linux系统下安装Mysql

1、执行命令&#xff1a;rpm -qa | grep -i mysql&#xff0c;先查看系统之前是否有安装相关的rpm包&#xff0c;如果有&#xff0c;会显示类似下面的信息&#xff1b; 2、通过命令yum -y remove mysql-*  一次性删除系统上所有相关的rpm包&#xff0c;或者通过命令yum -y …...

Jenkins学习笔记1

CI 服务器&#xff1a; 认识Jenkins&#xff1a; Jenkins是一个可扩展的持续集成&#xff08;CI&#xff09;引擎&#xff0c;是一个开源项目&#xff0c;旨在提供一个开放易用的软件平台&#xff0c;使得软件持续集成变成可能。Jenkins非常易于安装和配置&#xff0c;简单易…...

注意力机制

概念没什么好说的&#xff0c;反正大家都会说&#xff0c;具体实战怎么写才是最为重要的 1.自注意力 假设有一组数据&#xff0c;都是一维的向量&#xff0c;这个向量可能是一个样本&#xff0c;可能是其他什么&#xff0c;都无所谓。 假设有一组一维向量x1,x2,x3,x4,x5; 第…...

JVM-Java字节码技术笔记

Java字节码技术 Java字节码是java代码编译后的中间代码格式&#xff0c;JVM需要读取并解析字节码才能执行相应的任务 获取字节码简介&#xff1a;由单字节(byte)的指令组成 操作码&#xff08; 指令&#xff09;, 主要由类型前缀和操作名称两部分组成。根据指令的性质&#xf…...

C++ 友元、重载、继承、多态

友元 关键字&#xff1a;friend 友元的三种实现 全局函数做友元类做友元成员函数做友元 全局函数做友元 //建筑物类 class Building {//goodGay全局函数是Building好朋友&#xff0c;可以访问Building中私有成员friend void goodGay(Building& building); public:Build…...

Spring Boot 日志文件

前言 本篇博客主要介绍自定义的日志打印、日志的级别高低、如何保存日志等等..... 一、日志是什么&#xff1f;日志有什么用&#xff1f; 日志就是我们控制台上输出的内容&#xff0c;控制台上的输出的信息就是日志信息&#xff0c;如下所示&#xff1a; 日志有什么用&#x…...

vulhub venom

文章目录 靶场环境信息收集ftp服务二、信息利用三、任意文件上传三 sudo提权靶场环境 `vmware 靶场信息:https://www.vulnhub.com/entry/venom-1,701/ 下载地址:https://download.vulnhub.com/venom/venom.zip 新建虚拟机打开下载后的ovf文件 遇见导入失败合规性检查时,重试…...

青岛地产网站建设/内容营销的4个主要方式

游戏运行库大全 游戏运行环境 所有游戏组件 32位 64位系统常用运行库合集 3DM游戏常用运行库安装包 下载 本安装包集成32位和64位运行库&#xff0c;是目前互联网上最新最全的常用运行库合集&#xff0c;能自动识别系统版本以提供适合您的组件&#xff0c;无人值守自动安装。总…...

体育网站怎样做香功/谷歌推广怎么样

本文与大家分享一些Python编程语言的入门书籍&#xff0c;其中不乏经典。我在这里分享的&#xff0c;大部分是这些书的英文版&#xff0c;如果有中文版的我也加上了。有关书籍的介绍&#xff0c;大部分截取自是官方介绍。Python基础教程&#xff08;Begining Python&#xff09…...

二次开发主题wordpress/互联网营销软件

由人工智能&#xff08;AI&#xff09;和机器人流程自动化&#xff08;RPA&#xff09;等新技术驱动的数字劳动力风潮正席卷全球。企业利用软件机器人填补人力短缺的趋势也日益明显。 数字劳动力&#xff08;Digital Labor&#xff09;通常也被称为「数字员工」&#xff0c;其技…...

在家建设一个网站需要什么/软文价格

启动及关闭 MySQL 服务器 首先&#xff0c;我们需要通过以下命令来检查MySQL服务器是否启动&#xff1a; ps -ef | grep mysqld 如果MySql已经启动&#xff0c;以上命令将输出mysql进程列表&#xff0c; 如果mysql未启动&#xff0c;你可以使用以下命令来启动mysql服务器: root…...

标志在线设计网站/在线生成网站

如果你想要查看logging事件不要忘记设置。 import logging logging.basicConfig(format%(asctime)s : %(levelname)s : %(message)s, levellogging.INFO) 转化接口 在前面的语料和向量空间的教程中&#xff0c;我们创建了一个文档语料&#xff0c;用向量流来表征。接下来&#…...

外贸企业网站/嘉兴seo优化

微服务技术栈选型&#xff0c;看了这个别的可以不用看了 jurassic_1 2016-11-01 16:37:57 浏览3461 评论0分布式 架构 Cloud spring 基础设施 微服务 负载均衡 netty 摘要&#xff1a; 本文由PPmoney架构师敖小剑分享&#xff1a;微服务的核心技术&#xff0c;目前可选的开源微…...